본문 바로가기

[Oracle] 날자 생성 쿼리 [Oracle] 날자 생성 쿼리 SELECT LEVEL AS LV, TRUNC(SYSDATE) - LEVEL + 1 AS DATE_COL FROM DUAL CONNECT BY LEVEL 더보기
[Oracle] 각 Row Number 컬럼 곱하기 [Oracle] 각 Row Number 컬럼 곱하기 WITH TMP AS ( SELECT 1 NUM FROM DUAL UNION ALL SELECT 2 NUM FROM DUAL UNION ALL SELECT 3 NUM FROM DUAL UNION ALL SELECT 4 NUM FROM DUAL UNION ALL SELECT 5 NUM FROM DUAL UNION ALL SELECT 6 NUM FROM DUAL UNION ALL SELECT 7 NUM FROM DUAL UNION ALL SELECT 8 NUM FROM DUAL UNION ALL SELECT 9 NUM FROM DUAL UNION ALL SELECT 10 NUM FROM DUAL ), SIGN_VAL AS (SELECT CASE MOD (C.. 더보기
[Oracle] 콤마를 Row로 변환 [Oracle] 콤마를 Row로 변환 WITH TMP AS ( SELECT '사과,배,감자,복숭아,수박,포도' AS Col1 FROM DUAL ) SELECT REGEXP_SUBSTR (TMP.Col1, '[^,]+', 1, LEVEL) PIVOT_COL FROM DUAL, TMP CONNECT BY REGEXP_SUBSTR (TMP.Col1,'[^,]+', 1, LEVEL) IS NOT NULL; PIVOT_COL -----------------사과배감자복숭아수박포도 더보기
[Oracle] 데이터베이스/테이블 정보 [Oracle] 데이터베이스/테이블 정보 -- 데이터베이스 버전 SELECT * FROM V$VERSION; -- 시스템 정보 SELECT USERNAME,PROFILE,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE FROM DBA_USERS; -- 데이터베이스 문자정보 SELECT * FROM NLS_DATABASE_PARAMETERS; -- 테이블 정보 SELECT * FROM USER_TABLES WHERE TABLE_NAME = '테이블명'; -- 테이블 정보/컬럼 정보 SELECT * FROM USER_TAB_COLS WHERE TABLE_NAME = '테이블명' AND COLUMN_NAME = '컬럼명'; -- 테이블 CREATE DDL / VIEW CREATE DDL.. 더보기
[Oracle] 각 그룹별 SUM 및 특정 컬럼 첫번째 Row 가져오기 [Oracle] 각 그룹별 SUM 및 특정 컬럼 첫번째 Row 가져오기 WITH TEMP AS ( SELECT 'A' AS "품목1", 'A1-1' AS "품목2", 100 AS "품목 당 목표매출량", 20 AS "매출량" FROM DUAL UNION ALL SELECT 'A' AS "품목1", 'A1-1' AS "품목2", 100 AS "품목 당 목표매출량", 40 AS "매출량" FROM DUAL UNION ALL SELECT 'A' AS "품목1", 'A1-2' AS "품목2", 200 AS "품목 당 목표매출량", 20 AS "매출량" FROM DUAL UNION ALL SELECT 'A' AS "품목1", 'A1-2' AS "품목2", 200 AS "품목 당 목표매출량", 40 AS "매출량".. 더보기
[Oracle] 시:분:초 <-> hour, minute, second 등으로 변환 [Oracle] 시:분:초 hour, minute, second 등으로 변환 ------------------------------------------------------------------------------ hh24:mi:s를 숫자(시,분,초)로 변환---------------------------------------------------------------------------- 1. 문자열 (hh24:mi:s) 을 시, 분, 초 로 변환 - 딱 안떨어질 수 있음 SELECT '00:23:45' "시간", TO_NUMBER(TO_CHAR(TO_TIMESTAMP('00:23:45', 'hh24:mi:ss'),'sssss'))/3600 "시로 변환", TO_NUMBER(TO_CHAR(TO_T.. 더보기
[Oracle] 그룹별 최종일자 ROW 가져오기 [Oracle] 그룹별 최종일자 ROW 가져오기 WITH TEMP AS ( SELECT 'A' GRP, TO_DATE('2018-11-01','YYYY-MM-DD') DT, 50 AMT FROM DUAL UNION ALL SELECT 'A' GRP, TO_DATE('2018-11-02','YYYY-MM-DD') DT, 100 AMT FROM DUAL UNION ALL SELECT 'A' GRP, TO_DATE('2018-11-03','YYYY-MM-DD') DT, 70 AMT FROM DUAL UNION ALL SELECT 'A' GRP, TO_DATE('2018-11-03','YYYY-MM-DD') DT, 150 AMT FROM DUAL UNION ALL SELECT 'B' GRP, TO_DATE('2.. 더보기
[Oracle] 컬럼명에 Space가!!! ( column name with space ) [Oracle] 컬럼명에 Space가!!! ( column name with space ) 컬럼명이 끝에 Space가 들어가니 찾는데 한참 걸렸음 ㅠㅠ WITH TEMP AS ( SELECT '1' AS "Col1",'2' AS "Col2",'3' AS "Col3 " FROM DUAL ) SELECT Col3 FROM TEMP; ----------- Result --------------ORA-00904: "COL3": invalid identifier00904. 00000 - "%s: invalid identifier"*Cause: *Action:5행, 8열에서 오류 발생 1. 컬럼명 Space 제거 - 가능한 컬럼명에 Space가 들어가는 것을 권장하지 않음, 디버깅 어려움 2. 큰 따.. 더보기
[Oracle] 오류 - ORA-00947: not enough values 또는 ORA-00913: too many values [Oracle] 오류 - ORA-00947: not enough values 또는 ORA-00913: too many values 1. SQL 오류: ORA-00947: not enough values - 입력 Table 컬럼보다 값이 적을 때 INSERT INTO ( Col1,Col2,Col3 ) VALUES ( '1','2' ) -------- Result -----------오류 발생 명령행: 1 열: 2오류 보고 -SQL 오류: ORA-00947: not enough values00947. 00000 - "not enough values"*Cause: *Action: 2. SQL 오류: ORA-00913: too many values - 입력 Table 컬럼보다 값이 많을 때 INSERT INTO.. 더보기
[Oracle] 계층형 원 조상 가져오기(CONNECT_BY_ROOT) [Oracle] 계층형 원 조상 가져오기(CONNECT_BY_ROOT) WITH TEMP AS ( SELECT '0' Seq, NULL P_Level, 'A-1' C_Level FROM DUAL UNION ALL SELECT '1' Seq,'A-1' P_Level, 'A-2' C_Level FROM DUAL UNION ALL SELECT '2' Seq,'A-1' P_Level, 'A-3' C_Level FROM DUAL UNION ALL SELECT '3' Seq,'A-2' P_Level, 'A-4' C_Level FROM DUAL UNION ALL SELECT '4' Seq,'A-4' P_Level, 'A-5' C_Level FROM DUAL UNION ALL SELECT '5' Seq,'A-5' P_.. 더보기