如何爲clob類型的列查詢表?我需要爲某個字符串查詢表的列(除了其他條件 - 我可能需要使用Case語句),我最初的想法是查詢子查詢中的數據,然後使用Case查找匹配頂部查詢。但我現在卡住了,因爲我不知道如何查詢選擇中的clob類型數據!查詢Oracle Clob數據類型
編輯: 表中的clob列是一組段落,我嘗試搜索的字符串可能位於段落中的任何位置。我不確定clob的大小。
如何爲clob類型的列查詢表?我需要爲某個字符串查詢表的列(除了其他條件 - 我可能需要使用Case語句),我最初的想法是查詢子查詢中的數據,然後使用Case查找匹配頂部查詢。但我現在卡住了,因爲我不知道如何查詢選擇中的clob類型數據!查詢Oracle Clob數據類型
編輯: 表中的clob列是一組段落,我嘗試搜索的字符串可能位於段落中的任何位置。我不確定clob的大小。
希望這個例子清楚地說明了什麼我我試圖解釋。
SET SQLBL ON;
SET DEFINE OFF;
CREATE TABLE CLOB_TEST
(
clob_in CLOB
);
INSERT
INTO CLOB_TEST VALUES
(
'I am working as a DBA and senior database resource in L&T Infotech in Pune India'
);
SELECT DBMS_LOB.SUBSTR(CLOB_IN,3000) ot FROM CLOB_TEST;
-----------------------------OUTPUT------------------------------------------
OT
I am working as a DBA and senior database resource in L&T Infotech in Pune India
-----------------------------OUTPUT------------------------------------------
當我嘗試這樣做時出現錯誤:ORA-06502:PL/SQL:數字或值錯誤:字符串緩衝區太小 – Skn
在許多方面,與「查詢列」(奇怪的術語!)類型varchar2的方式相同。
表結構:
SQL> describe t
Name Null? Type
------------------------- -------- --------------------------------------------
COL1 VARCHAR2(20)
COL2 CLOB
表的內容:
SQL> select * from t;
COL1 COL2
-------------------- -------------------------------------------------------
abc afdreed
azx; ffare21
查詢表(其中對CLOB列條款):
SQL> select * from t where col2 like '%dre%';
COL1 COL2
-------------------- -----------------------------------------------------------
abc afdreed
長度clob:從...選擇長度(... clob expr ...) – mathguy