본문 바로가기

DataBase/Oracle

오라클 달력 및 날짜 테이블 오라클에서 통계 관련 쿼리를 작성하다보면,기간성 정보 기준으로 데이터를 도출해야할 경우가 있다. 예를 들자면 (일간, 월간, 년간)하지만 영업일이 없었던 경우 0 원으로 표시해야하거나 주말같은 경우는 뭔가 표시를 해주어야 하는데,이게 필요할 때 찾으면 없거나 보통 귀찮은일이 아님.해서 테이블부터 데이터 등록 PL/SQL 까지 같이 올림. 그냥 바로 돌리시면 됩니다.^^CREATE TABLE DATE_STANDARD ( YEAR_ID CHAR(4 BYTE), MONTH_ID CHAR(2 BYTE), DAY_ID CHAR(2 BYTE), DATE_ID VARCHAR2(8 BYTE), WEEK_NO CHAR(1 BYTE), WEEK_TXT VARCHAR2(5 BYTE) ) CREATE INDEX IDX_DAT..
오라클 컬럼을 로우로 오라클 컬럼을 로우로 SELECT DECODE (MOD (ROWNUM - 1, 3) + 1, 1, SUM_TARGET_SALES_AMT, 2, MALL_TARGET_SALE_AMT, 3, MALL_OUT_CHANNEL_TARGET_SALE_AMT) AS TARGET_SALE_AMT FROM (SELECT 1 FROM DUAL CONNECT BY LEVEL <= 3), ( SELECT TARGET_VAL AS SUM_TARGET_SALES_AMT, TARGET_CLIENT_TBH AS MALL_TARGET_SALE_AMT, TARGET_CLIENT_TBH_OUT - 100 AS MALL_OUT_CHANNEL_TARGET_SALE_AMT FROM TARGET_DATAS WHERE TARGET_YEAR = '..
오라클 11g 문자열 연결 (횡) 가끔 데이터 조회 결과를 1:N 인데 1:1 로 합쳐서 표시할때 유용하다.예제는 다음과 같다./* 엘클라시코 포워드 라인업 */ /* 오라클 11g 기준 문자열 연결 예제 (LISTAGG .. ) */ WITH EL_CLASICO_FORWARD_LINE_UP AS ( SELECT '크리스티아누 호날두' AS PLAYER, '레알 마드리드' AS CLUB FROM DUAL UNION ALL SELECT '가레스 베일', '레알 마드리드' FROM DUAL UNION ALL SELECT '카림 벤제마', '레알 마드리드' FROM DUAL UNION ALL SELECT '리오넬 메시', 'FC 바르셀로나' FROM DUAL UNION ALL SELECT '네이마르', 'FC 바르셀로나' FROM DUAL U..
오라클 DIRECT-PATH INSERT (인서트 성능향상) 먼저 DIRECT-PATH INSERT 에 대한 구조를 대략적으로나마 이해하면 좋을 듯 싶다.나도 데이토의 올라온 내용을 따라해보고 까먹을까봐 일단 예제 순서만 메모.해당 세션에 패러렐 DML 허용;임시 테이블에 로깅해제;APPENT 힌트 사용테이블 로깅;다시 패러렐 DML 비허용여기에 대한 관련 링크들은 다음과 같음.INSERT 유형 (DIRECT-PATH INSERT)오라클 INSERT 속도 개선
오라클 쿼리 수행계획 확인 오라클에서 쿼리 수행계획을 찾다보니 확인하고,다음과 같이 샘플 예제를 넣어서 확인해버릇 해야겠다.내가 이해하기로는 크게 3 블럭으로 나눈다.PLAN_TABLE(플랜계획내용을 저장하는 테이블) 에 STATEMENT_ID 를 부여실행할 쿼리플랜계획내용 조회 SET SERVEROUTPUT ON; EXPLAIN PLAN SET statement_id = 'EX1' INTO PLAN_TABLE FOR SELECT * FROM "대상테이블" /* 수행계획을 확인할 대상쿼리 */ SELECT * FROM PLAN_TABLE WHERE STATEMENT_ID = 'EX1' 위 쿼리가 실행할 샘플 예제 입니다.참고링크 : http://najuung.tistory.com/56
sqldeveloper - locale not recognized Mac OS 에서 sqldeveloper 로 접속시 locale not recognized 에러머세지로 연결불가.아마 로케일 문제인듯.설치된 sqldeveloper 는 영문판임.구글링중 발견.{sqldeveloper 설치위치}/Contents/Resources/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf파일을 열고 VMOption 에서 AddVMOption -Duser.language=koAddVMOption -Duser.country=KR 이분은 친절한 캡쳐포스팅 : http://ending1.tistory.com/49
오라클 조인 업데이트 (다중업데이트) - Case 1 오라클에서 데이터를 다중 조건에 맞게 업데이트하기 위한 방법중 첫번째.SET 절과 (WHERE, AND) 조건 절과 동일한 내용으로 업데이트 쿼리를 수행.샘플 데이터는 다음과 같다.테이블 : JKUN위 테이블에서 업데이트 대상은 NUM_1 필드(전체)이다.이 데이터들을 순번으로 업데이트 할 예정.다음은 가상 데이터 SELECT 1 AS RN, 4 AS NUM_SEQ FROM DUAL UNION ALL SELECT 2 AS RN, 5 AS NUM_SEQ FROM DUAL UNION ALL SELECT 3 AS RN, 6 AS NUM_SEQ FROM DUAL UNION ALL SELECT 4 AS RN, 7 AS NUM_SEQ FROM DUAL UNION ALL SELECT 5 AS RN, 8 AS NUM_..
오라클 WITH WITH 구문내의 쿼리 결과를 Alias 를 지정하여 이어서 SELECT 절과 이용.옵티마이저에서 인라인뷰나 임시테이블로 여김.WITH WITH_EX AS ( SELECT ROWNUM R, 'TEST1' STR, SYSDATE DT FROM DUAL UNION ALL SELECT ROWNUM, 'TEST2', SYSDATE FROM DUAL UNION ALL SELECT ROWNUM, 'TEST3', SYSDATE FROM DUAL ) SELECT * FROM WITH_EX;조인도 가능SELECT * FROM WITH_EX A LEFT OUTER JOIN ( SELECT 1 R, 'TESTSSSSS' STR, SYSDATE DT FROM DUAL UNION ALL SELECT 2 R, 'TESTSSSSS..