我需要将各种CLOB数据连接到一个CLOB字段中。
我有一个包含各种行的数据库,每个行包含一些char字段(例如BATCH_ID)和一个CLOB(BATCH_BODY)。我不确定如何连接CLOB以使所有内容成为一行。
最终目标是将BATCH_ID相同的所有行组合成一行,其中一个CLOB文件由各种BATCH_BODY组成
答案 0 :(得分:1)
答案 1 :(得分:0)
要使用长度超过32K的CLOB而不截断,我需要这样的代码:
--ALL_XML := ALL_XML || SINGLE_XML;
--The above crashed on Oracle 11g with text beyond 32K, so...
lobLength := DBMS_LOB.GETLENGTH(SINGLE_XML);
FOR i IN 0..100 LOOP
offset := i * buffSize + 1;
EXIT WHEN SINGLE_XML IS NULL OR lobLength < offset;
-- fill the buffer with final data chunk to append to the lob
buffer := DBMS_LOB.SUBSTR(SINGLE_XML, buffSize, offset);
DBMS_LOB.APPEND(ALL_XML, TO_CLOB(buffer));
END LOOP;