2013-08-23 11 views
3

문자> 4000을 CLOB 유형 열에 삽입하는 방법은 무엇입니까? 오류가Oralce CLOB는 4000자를 초과하여 삽입 할 수 없습니까?

--create test table s 
create table s 
(
     a clob 
); 
insert into s values('>4000 char') 

결과 :

ORA-01704:the string too long.

내가 문자열> 4000 한 시간 동안, 어떻게 할 삽입 할? 가능할까요?

오라클 참조를 읽을 때 CLOB은 최대 4GB (기가 바이트)를 절약 할 수 있습니까?

+0

당신은이 작업을 수행하는 가장 좋은 방법을 찾았나요? – cheloncio

답변

4

한 번 삽입 할 때 최대 값은 4000 자 (Oracle에서는 최대 문자열 리터럴)입니다. 당신이 CLOB에 (최대) 4000 개 문자의 덩어리를 추가 로브 기능 dbms_lob.append()를 사용할 수 있습니다 그러나 :

CREATE TABLE don (x clob); 


DECLARE 
l_clob clob; 
BEGIN 
    FOR i IN 1..10 
    LOOP 
    INSERT INTO don (x) VALUES (empty_clob()) --Insert an "empty clob" (not insert null) 
    RETURNING x INTO l_clob; 

    -- Now we can append content to clob (create a 400,000 bytes clob) 
    FOR i IN 1..100 
    LOOP 
     dbms_lob.append(l_clob, rpad ('*',4000,'*')); 
     --dbms_lob.append(l_clob, 'string chunk to be inserted (maximum 4000 characters at a time)'); 
    END LOOP; 
    END LOOP; 
END; 
+1

예를 들어 주셔서 감사합니다.하지만 어떻게 이런 xml을 삽입 할 수 있습니까? jere은 원래 부분 만 붙여 넣었습니다. 4000 바이트 Gambardella, 마태 복음 XML 개발자 '안내서 컴퓨터 44.95 <게시 _> 2000년 10월 1일 생성 응용 프로그램에서 심층보기 (XML 포함). 다른 덩어리를 만드는 방법. oracle의 XML에 대한 지식이 거의 없습니다. 도움을주십시오. – redsoxlost

관련 문제