Oracle SQL 특정 문자 기준으로 문자열 분리하기(행으로 분리)
Oracle SQL을 작성하다 보면 특정 문자를 기준으로 문자열을 행(row)으로 분리해야 하는 경우가 종종 있다. 만약 테이블 컬럼의 데이터가 "10|20|30|40|50|" 인 경우, 문자 "|"를 기준으로 10~50으로 데이터를 분리(5개의 row) 하려면 아래와 같이 SQL을 작성하면 된다(아래 SQL에서는 테이블이 WITH절, 컬럼은 STR이고, 분리된 ROW 명이 CODE 다 ) 문자열 SQL WITH TMP AS (SELECT '10|20|30|40|50|' AS STR FROM DUAL) SELECT REGEXP_SUBSTR(TMP.STR, '[^|]+', 1, LEVEL) CODE FROM DUAL, TMP CONNECT BYREGEXP_SUBSTR(TMP.STR, '[^|]+', 1, ..
2021. 5. 26.
Oracle 테이블 컬럼 정보 조회 쿼리(컬럼명, PK, FK, Nullable)
프로젝트 진행 시 분석/설계를 진행할 때 기존에 등록되어 있는 Oracle 테이블 컬럼정보를 조회하는 경우가 많다(예를 들면 컬럼 물리명/논리명, PK, FK, Nullable, Data 기본값 등등) 그래서 해당 내용을 기억하기 위해 아래와 같이 컬럼 정보 조회 쿼리를 정리해 보았다. SELECT AA.COLUMN_ID, AA.COLUMN_NAME, BB.COMMENTS, AA.DATA_TYPE, AA.DATA_LENGTH, AA.DATA_DEFAULT, CC.PK, AA.NULLABLE, CC.FK FROM ALL_TAB_COLUMNS AA, ALL_COL_COMMENTS BB, (SELECT A.OWNER, A.TABLE_NAME, A.CONSTRAINT_TYPE, COLUMN_NAME, POSIT..
2020. 11. 20.