일자별, 제품코드별 판매금액 소계, 합계 구하기... 일자 상품코드 판매금액 20160101 AAA 500 20160102 AAA 400 소계 900 20160101 BBB 1000 20160102 BBB 2000 소계 3000 합계 3900 SELECT DECODE(LV, 1, '소계', 3, '합계', V1.DAY) AS "일자" ,DECODE(LV, 0, V1.PRDT_CD, ' ') AS "상품코드" ,SALES_AMT AS "판매금액"FROM( SELECT DAY ,PRDT_CD ,SUM(AMT) AS SALES_AMT ,GROUPING_ID(PRDT_CD, DAY) AS LV FROM 거래 GROUP BY ROLLUP(PRDT_CD, DAY) ORDER BY PRDT_CD , DAY) V1
PL/SQL 로 함수나 프로시저를 만들지 않고 간단하게 프로그래밍하는 PL/SQL 블럭 예제 입니다. DECLARE-- 변수 선언li number(10) := 0; BEGIN -- 다량의 데이터 FETCH할 경우 커서 선언..FOR C IN (SELECT NO, NAME FROM T_MEMBER)LOOP DBMS_OUTPUT.PUT_LINE('SEQ = ' || li || ', NAME= ' || C.NAME ); li := li + 1;END LOOP; END;
예전에 소개해 드린 SAMPLE() 키워드를 이용한 랜덤 샘플링 방법외에 ORA_HASH() 함수를 이용한랜덤 샘플링 방법을 소개해 드립니다. SELECT *FROM 거래 SAMPLE(5)WHERE 년월 = '201201'; -- 사용법ORA_HASH( 값),ORA_HASH(값, 버킷수);ORA_HASH(값, 버킷수, SEED값); 위 3개의 ORA_HASH함수 사용법 중에서 세번째 방법을 활용하면 더 다양하게 랜덤 샘플링 결과를 얻을 수 있습니다. SELECT *FROM 거래WHERE 년월 = '201201' AND ORA_HASH(주문번호, 50, 5) IN (24, 48) ==> 주문번호로 HASH함수를 만들고 50개의 버킷에 담습니다. 그리고 랜덤 초기화는 5라는 값으로 사용해서 ... ORA_H..
테이블 T1과 테이블 T2 를 서브쿼리로 조인시 아래와 같은 상황에서 버그로 인해서 데이터가 추출되지 않음. T1.NAME 컬럼은 CHAR(10)T2.NAME 컬럼은 VARCHAR(15) SELECT *FROM T1WHERE T1.NAME NOT IN (SELECT NAME FROM T2 );-- 데이터가 나와야 하는 조건에서도 무조건 NOT FOUND 즉 0 ROWS SELECT *FROM T1WHERE T1.NAME NOT IN (SELECT NAME || '' FROM T2 );위와 같이 || ''를 추가하면 제대로 나옴. 형변환과 관련되는 것 같은데 어째든 전체 결과 합. 즉 IN, NOT IN이 맞지 않음버그가 아니라면 문맥상 NOT IN임으로 T1전체 컬럼수가 나와야 하는게 아닐런지.. 테스트..
오라클에서 특정 컬럼에 저장되어 있는 XML를 파싱하여 값을 가져오는 예제입니다.XML 형식 10000 1. 예제 테이블 생성CREATE TABLE TT_XML(SEQ NUMBER(10),XML_DATA VARCHAR2(4000),PRIMARY KEY(SEQ)) 2. XML 데이터 넣기 INSERT INTO TT_XML VALEUS(1, ' 10000 ');COMMIT; 3. XML 파싱해서 특정 값을 컬럼 형태로 출력(XML 파싱할때는 대소문자 가림) SELECT T1.SEQ ,T1.XML_DATA ,V1.NAME ,V1.VALUEFROM TT_XML T1 ,XMLTABLE( '/BINDS/BIND' PASSING XMLTYPE(T1.XML_DATA) COLUMNS NAME VARCHAR2(50) PA..
DBMS_RANDOM.STRING(opt, len) 함수를 이용하면 랜덤 문자열을 만들 수 있습니다.len = 문자열 길이opt = 'u' or 'U' -> 대문자 알파벳 'l' or 'L' -> 소문자 알파벳 'a' or 'A' -> 대소문자 혼합 'x' or 'X' -> 대문자 알파벳 + 숫자 'p' or 'P' -> 프린트 가능한 문자 ex)SELECT DBMS_RANDOM.STRING('X', 20)FROM DUAL 참고PL/SQL Packages and Types Reference 11g Release 2
11g에서 새로운 기능으로 CLOB를 저장하는 방법이 추가되었습니다. 바로 securefile 입니다. securefile아니면 basicfile 이라고 합니다. CLOB이 있는 테이블의 컬럼이 securefile인지 basicfile인지 확인하고 싶다면 DBA_LOBS 뷰를 조회하면 됩니다. SELECT SECUREFILEFROM DBA_LOBSWHERE OWNER = '' AND TABLE_NAME = ''==> YES면 securefile, NO면 basic 파일 입니다. securefile은 성능면에서 basicfile보다 뛰어나기 때문에 11g 이상이면 CLOB를 저장할때 securefile로 저장하면 좋습니다.securefile은 basicfile에서 사용할 수 없었던 중복방지(스토리지절약),..
- Total
- Today
- Yesterday
- Sybase IQ
- 브리다 정수기
- 별이 빚나는 밤
- 오미크론
- VARIDESK
- 유가바이트디비
- 코라나 19
- 카카오 에드
- 홈 오피스
- node.js
- 매직 트랙패드2
- 톡토기
- 르세라핌
- Pixel Pals
- yugabyteDB
- GKRS
- 빈센트 반 고흐
- Life Chair
- 파나소닉 비데 DL-EH10KWS
- 고체 향수
- 배당급
- 증권정보포털
- weka
- 로니카 BCS
- JMW 헤어드라이기기
- 별잉 빛나는 밤
- 솔리드 쿨론
- 루미큐브 종류
- 남설 팔찌
- 화분벌레
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |