펭귄집

ORACLE CLOB형 길이(length), 문자열 자르기(substr)


ORACLE에서 CLOB을 varchar2와 같은함수를 쓰면 에러남 ㅂㄷ

CLOB인거 문자열 자르기, length(길이) 확인은 아래처럼 하면됨


SELECT DBMS_LOB.SUBSTR(CLOB형 컬럼명, 자를 문자열 길이, OFFSET) AS "SUBSTR_DATA_COLUMN" -- 문자열 자르기
DBMS_LOB.GETLENGTH(CLOB형 컬럼명)  AS "COLUMN_DATA_LENGTH" , -- 문자열  
FROM ZORBA_EMPLOYEE  


이렇게라는데, 우선 난 길이만 확인하면 되서 문자열자르기는 안해봄

응용하면 아래와 같다

SELECT DBMS_LOB.SUBSTR(CONTENTS, 1, DBMS_LOB.GETLENGTH(CONTENTS)) AS "LAST_CONTENT_CHAR"
DBMS_LOB.GETLENGTH(CONTENTS)  AS "CONTENT_LENGTH" 
FROM ZORBA_EMPLOYEE      




이건 내가 해본 쿼리

SELECT APLY_NO, REG_DT, CERT_PBLKEY_AGRTM, DBMS_LOB.GETLENGTH(CSR), CSR
FROM ISUE_CMPLT_INF
WHERE 1=1
AND CERT_PBLKEY_AGRTM LIKE 'RSA(4096)'
AND CSR IS NOT NULL
ORDER BY REG_DT DESC



결과는 아래와 같음




까먹지말자





'SQL' 카테고리의 다른 글

Oracle VARCHAR2타입 최대 저장 길이  (0) 2024.01.26

Oracle VARCHAR2타입 최대 저장 가능 길이

Oracle 사용 중인데 CSR을 저장하려고 봤더니 VARCHAR2타입은 최대 4000byte까지만 저장 가능함.

==============================================

내가 저장하려는 CSR 정보

- 암호화종류 : RSA

- 키사이즈 : 4096

==============================================


이럴경우엔 ?

1. DB타입을 CLOB으로 설정하는 방법

2. 컬럼2개를 사용해서 최대 8000byte를 사용하는 방법


경우에 따라서 CLOB으로 하는게 불가능 or DBA가 더 까다로워할 수 있어서 2안으로 될 가능성도 있지만

우선 난 CLOB으로 사용함



+ 추가

우리가 CLOB으로 사용하는 건 그냥 회사 방침일 뿐임

그리고 우리가 CLOB으로 하고있다고해서 고객쪽도 동일하게 CLOB으로 맞춰줄 필요는 없음 (보통 CLOB으로하면 손이 많이가서 귀찮아함)


또또 그리고 ..

RSA의 키사이즈가 4096 이길래, 아무생각없이 4096byte일거라고 생각한 무지한 나자신 반성 ..

키사이즈 != 저장되는 크기

ㅎㅎㅎㅎㅎㅎ,,

'SQL' 카테고리의 다른 글

ORACLE CLOB형 길이(length), 문자열 자르기(substr)  (0) 2024.01.29

'면접' 카테고리의 다른 글

개발자면접  (0) 2017.12.01