显示4000多个字符的CLOB列

时间:2011-09-09 06:40:30

标签: oracle clob

我有这个CLOB列,我需要使用select语句显示它。

我使用DBMS_LOB.SUBSTR将其转换为varchar2

select DBMS_LOB.SUBSTR(T1.CLOB_COL,4000,1) CLOB_COL from T1

我的问题是我的一些CLOBS包含超过4000个字符。我怎样才能显示它...任何想法/建议?

非常感谢..

2 个答案:

答案 0 :(得分:6)

我猜你可以将这些块显示为单独的行?

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

答案 1 :(得分:0)

使用SQL访问时,

VARCHAR2只能是4000字节长。如果您想使用大于4000字节的CLOB,则无法将其转换为VARCHAR2,您必须将其作为CLOB使用。

您使用什么工具?

大多数工具/语言都可以本地使用CLOB。只需选择列:

select T1.CLOB_COL from T1