[오라클 SQL] 오라클 “ORA-01704 문자열이 너무 깁니다.” “string literal too long” 에러 해결 방법


안녕하세요.

 

오늘은 오라클 SQL에서 “ORA-01704 문자열이 너무 깁니다.” 에러 발생 시 해결하는 방법에 대해서 알려드리려고 합니다.

 

저 같은 경우는 특정 A라는 테이블에 B라는 컬럼을 하나 만들었고, 해당 컬럼은 CLOB 타입으로 진행해서 해당 테이블 컬럼에 데이터는 Insert를 하려고 했습니다.


 

그런데..INSERT 구문을 실행 하던 중 갑자기 “ORA-01704 문자열이 너무 깁니다.” 에러 창이 뜨면서 에러가 발생하였습니다.

 

이것 저것 구글링 해보면서 알아보니까, CLOB 타입 컬럼에 INSERT 할 시 해당 문자열의 길이가 4000Byte를 초과하면 안된다고 하더라구요..!

 

그렇다면 이 에러코드를 어떻게 해결해야 하나? 바로 TO_CLOB 함수를 이용하여 문자를 일정 길이로 잘라서 문자를 연결해주고 INSERT 해주시면 되겠습니다.

 

해결 방법


1

2

3

4

INSERT INTO A (B)

VALUES (TO_CLOB('~~~~~~4000Byte~~~~~~~~'|| 

        TO_CLOB('~~~~~~4000Byte~~~~~~~~'||

        TO_CLOB('~~~~~~4000Byte~~~~~~~~') );

cs

 

위와 같이 4000byte를 초과하는 문자를 최대 4000Btye로 끊어서 “||” 문자로 연결하는 식으로 하여 INSERT 구문에 넣어주고 SQL을 실행하면 알맞게 4000Byte 이상의 문자가 저장 되는 것을 확인하실 수 있습니다!

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY