안녕하세요.
오늘은 오라클 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~~~~~~~~') ); |
위와 같이 4000byte를 초과하는 문자를 최대 4000Btye로 끊어서 “||” 문자로 연결하는 식으로 하여 INSERT 구문에 넣어주고 SQL을 실행하면 알맞게 4000Byte 이상의 문자가 저장 되는 것을 확인하실 수 있습니다!
감사합니다.^^
728x90
'Database(데이터베이스) > Oracle' 카테고리의 다른 글
[오라클 SQL] 오라클 트리거(TRIGGER) 개념 및 사용 방법 (0) | 2020.02.21 |
---|---|
[오라클 SQL] 오라클(Oracle)에서 현재 생성된 프로시저 목록 조회하는 방법 (0) | 2020.02.13 |
[오라클 SQL] 오라클 일별, 주별, 월별, 분기별 구하는 방법 (0) | 2020.01.10 |
[오라클 에러] “ORA-01839: 지정된 월에 대한 날짜가 부적합합니다.” 에러 해결 방법 (0) | 2020.01.04 |
[오라클 SQL] 오라클 UNION, UNION ALL,Order By 하는 방법 (0) | 2019.12.22 |
이 글을 공유하기