我有这个 CLOB 列,我需要使用 select 语句显示它。
我用过 DBMS_LOB.SUBSTR
将其转换为 varchar2
:
select DBMS_LOB.SUBSTR(T1.CLOB_COL,4000,1) CLOB_COL from T1
我的问题是我的一些 CLOBS 包含超过 4000 个字符。我怎样才能显示它...任何想法/建议?
多谢..
最佳答案
我猜你可以将块显示为单独的行?
SELECT ROWNUM as chunk_no,ID, SUBSTR (t1.clob_col, (ROWNUM-1)*4000, 4000) AS chunk
FROM t1
CONNECT BY (ROWNUM-1)*4000 <= LENGTH(t1.clob_col)
或者,如果您的系统中可能存在 clob 的最大大小限制,您可以硬编码返回的文本列数
SELECT SUBSTR (t1.clob_col, 1, 4000) AS pt1,
CASE WHEN LENGTH (t1.clob_col) > 4000 THEN SUBSTR (t1.clob_col, 4001, 4000) END AS pt2,
CASE WHEN LENGTH (t1.clob_col) > 8000 THEN SUBSTR (t1.clob_col, 8001, 4000) END AS pt3,
CASE WHEN LENGTH (t1.clob_col) > 12000 THEN SUBSTR (t1.clob_col, 1201, 4000) END AS pt4
FROM t1
关于oracle - 显示 4000 多个字符的 CLOB 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7357999/