키보드전사
30
2021-09-24 16:50:39 작성 2021-09-24 16:51:32 수정됨
0
90

CLOB 데이터타입에 아주 긴 문장을 간단히 넣는 방법이 없을까요?


안녕하세요

문장이 아주 긴 html텍스트를 db에 넣고 싶은데 제가 넣으려는 html의 길이가 4000byte를 넘어서 입력이 되지 않아 질문드립니다.

DECLARE
CC CLOB;
BEGIN
CC := TO_CLOB('아주아주 긴 4000바이트 넘는 html 문장');
UPDATE AI_MANUAL_ITEM 
SET MANUAL_ITEM_CNTS = CC
WHERE 
MANUAL_NO = 6 AND MANUAL_CNTS_NO = 4 AND MANUAL_ITEM_NO = 1;

에러가 나는 코드는 위와 같구요, 

UPDATE AI_MANUAL_ITEM 
SET MANUAL_ITEM_CNTS = TO_CLOB(''아주아주 긴 문장)
WHERE 
MANUAL_NO = 6 AND MANUAL_CNTS_NO = 4 AND MANUAL_ITEM_NO = 1;

이렇게 해봐도 에러가 났습니다.

에러메세지는

SQL Error [6550] [65000]: ORA-06550: 줄 4, 열15:PLS-00172: 문자열 리터럴이 너무 깁니다.

가 나옵니다.

이전에는 임시적으로 하나 넣기위해서

UPDATE AI_MANUAL_ITEM 
SET MANUAL_ITEM_CNTS = TO_CLOB('4000byte이하의 문장')
                    || TO_CLOB('4000byte이하의 문장')
                    || TO_CLOB('4000byte이하의 문장')
                    || TO_CLOB('4000byte이하의 문장')
                    || TO_CLOB('4000byte이하의 문장')
WHERE 
MANUAL_NO = 6 AND MANUAL_CNTS_NO = 4 AND MANUAL_ITEM_NO = 1;


위와 같은 방식으로 해결 했는데 방식이 너무 비효율적인것 같고 간단히 넣을수 있는 방법이 있지 않을까 해서 질문드리게 되었습니다.

사용하는 db접속툴은 DBeaver이구요 MANUAL_ITEM_CNTS의 데이터 타입은 clob입니다. 

0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.