我有這個CLOB列,我需要使用select語句來顯示它。顯示4000+個字符的CLOB列
我以前DBMS_LOB.SUBSTR
將其轉換爲varchar2
:
select DBMS_LOB.SUBSTR(T1.CLOB_COL,4000,1) CLOB_COL from T1
我的問題是我的一些CLOBS包含超過4000個字符。我如何顯示它...任何想法/建議?
非常感謝..
我有這個CLOB列,我需要使用select語句來顯示它。顯示4000+個字符的CLOB列
我以前DBMS_LOB.SUBSTR
將其轉換爲varchar2
:
select DBMS_LOB.SUBSTR(T1.CLOB_COL,4000,1) CLOB_COL from T1
我的問題是我的一些CLOBS包含超過4000個字符。我如何顯示它...任何想法/建議?
非常感謝..
當SQL訪問VARCHAR2只能是4000個字節長。如果您想使用大於4000字節的CLOB,則無法將其轉換爲VARCHAR2,您必須將其作爲CLOB工作。
你使用什麼工具?
大多數工具/語言都可以在本地使用CLOB。只要選擇欄:
select T1.CLOB_COL from T1
我想你可以顯示塊作爲單獨的行?
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
搜索並嘗試了許多不同的技術之後,這是使用直接SQL的唯一工作。大多數其他解決方案需要PL/SQL或其他需要特殊權限的方法。 – bobfet1
你是如何顯示的? – eaolson