4

我需要将各种 CLOB 数据连接到一个 CLOB 字段中。

我有一个包含各种行的数据库,每行都包含一些字符字段(例如 BATCH_ID)和一个 CLOB(BATCH_BODY)。我不确定如何连接 CLOB 以使所有内容都成为一行。

最终目标是将所有 BATCH_ID 相同的行组合成一个带有单个 CLOB 文件的行,该 CLOB 文件由各种 BATCH_BODY 组成

4

2 回答 2

4

CONCAT 似乎适用于 CLOB:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions026.htm

于 2012-11-20T16:07:48.407 回答
1

要在不截断的情况下使用超过 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;
于 2017-02-13T19:25:43.940 回答