본문 바로가기
반응형

Database32

구분자를 이용하여 로우 늘리기 ===== 구분자 '|'로 데이터 로우 늘리기 ===== SELECT SUBSTR(a.langList, INSTR(a.langList, '|', 1, LEVEL) + 1, INSTR(a.langList, '|', 1, LEVEL + 1) - INSTR(a.langList, '|', 1, LEVEL)-1 ) AS split_result FROM (SELECT '|' || 'Java|Kotlin|Python|Swift' || '|' AS langList FROM dual) a CONNECT BY LEVEL 2023. 11. 8.
테이블 복사하기 in Oracle 1. 테이블 복사하기 [ 스키마 & 데이터 ] CREATE TABLE 새로만들테이블명 AS SELECT * FROM 복사할테이블명 [WHERE 절] 2. 테이블 구조만 복사하기 CREATE TABLE 새로만들테이블명 AS SELECT * FROM 복사할테이블명 WHERE 1=2 [where절에 '참'이 아닌 조건을 넣어줌] 3. 테이블은 이미 생성되어 있고 데이터만 복사 (테이블 구조가 동일할 때) INSERT INTO 복사할테이블명 SELECT * FROM 테이블명 [ WHERE 절 ] --Sample SQL INSERT INTO TB_BOARD_TEMP SELECT * FROM TB_BOARD; 4. 테이블은 이미 생성되어 있고 데이터만 복사 (테이블 구조가 다를 때) INSERT INTO 복사할테이.. 2023. 11. 8.
TO_NUMBER() 안먹힐때 in Oracle Oracle에서 TO_NUMBER() 함수가 안먹히는 경우에 컬럼이 숫자로만 이루어져 있는지 확인해야 한다. 1. TRANSLATE 함수를 사용하여 숫자 체크 (오라클 8i 이상) SELECT CASE WHEN TRANSLATE('-1234.56','A1234567890.+-','A') IS NULL THEN TO_NUMBER('-1234.56') END FROM dual 2. REGEXP_INSTR 함수를 사용하여 숫자 체크 (오라클 10g 이상) SELECT CASE WHEN REGEXP_INSTR('-1234.56','^[+-]?\d*(\.?\d*)$') = 1 THEN TO_NUMBER('-1234.56') END FROM dual 3. VALIDATE_CONVERSION 함수를 사용하여 숫자 체.. 2023. 11. 8.
CONNECT BY, PARTITION BY, GROUP BY in Oracl CONNECT BY, PARTITION BY, GROUP BY 란? 1. CONNECT BY - 계층형으로 나누기 위해 사용하는 쿼리 예시 ) SELECT EMPNO, ENAME, MGR FROM EMP START WITH MGR IS NULL CONNECT BY PRIOR EMPNO='MGR' 2. PARTITION BY - 집계함수에 그룹바이와 비슷하게 묶는 역할로 사용이 가능하다. 예시 ) SELECT EMPNO , ENAME , JOB , SAL , SUM(SAL) OVER(PARTITION BY JOB) FROM EMP WHERE JOB IN ('MANAGER', 'SALESMAN') ORDER BY JOB 3. GROUP BY - 그룹바이절로 그룹을 지을 수 있으며 내부적으로 ROLLUP, C.. 2023. 11. 8.
SUBQUERY 종류 in Oracle 1. scalar subquery( 스칼라 서브 쿼리) 스칼라 서브쿼리는 SELECT 절에 들어가며 단일 칼럼, 단일 행을 반환해야 합니다. 쿼리를 잘못 작성하여 2개 이상의 행이 반환되면 "ORA-01427 : 단일 행 하위 질의에 2개 이상의 행이 리턴되었습니다" 라는 오류가 발생하며 사용법 예시는 다음과 같습니다. Select a.empNo, a.name, a.deptNo, (select b.deptName from dept b where b.deptNo = a.deptNo) as deptName from emp a where a.empNo = 10 2. inline view( 인라인 뷰 ) 인라인 뷰는 FROM 절에 들어가는 서브쿼리이며 사용적인 측면에서 View 테이블과 동일합니다. Select.. 2023. 11. 8.
CLOB데이터 글자 수 조회하기 in Oracle CLOB데이터 글자 수 조회하기 in Oracle 오라클에서 CLOB에 .length등의 함수를 사용하면 에러가 발생합니다. CLOB 형식의 컬럼 데이터의 길이를 구하거나 문자열을 자르려면 DBMS_LOB.GETLENGTH, DBMS_LOB.SUBSTR을 사용하여야하며 사용방법은 아래와 같습니다. - 주의사항 컬럼의 형식이 CLOB 이어야합니다. SELECT DBMS_LOB.SUBSTR(CLOB형 컬럼명, 자를 문자열 길이, OFFSET) AS "CLOB_SUBSTR" -- 문자열 자르기 DBMS_LOB.GETLENGTH(CLOB형 컬럼명) AS "CLOB_LENGTH" , -- 문자열 FROM 테이블이름 2023. 11. 8.
반응형

loading