我有这个CLOB列,我需要使用select语句显示它.
我DBMS_LOB.SUBSTR以前把它转换成varchar2:
select DBMS_LOB.SUBSTR(T1.CLOB_COL,4000,1) CLOB_COL from T1
Run Code Online (Sandbox Code Playgroud)
我的问题是我的一些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)
Run Code Online (Sandbox Code Playgroud)
或者,如果系统中的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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34469 次 |
| 最近记录: |