簡體   English   中英

查詢Oracle Clob數據類型

[英]Querying Oracle Clob datatype

如何在表中查詢Clob類型的列? 我需要查詢表中的某個字符串(除其他條件外-我可能需要使用Case語句),我的最初想法是查詢子查詢中的數據,然后使用Case中的匹配項頂部查詢。 但是由於不確定如何在Select中查詢Clob類型數據,我現在陷入困境!

編輯:表中的clob列是一組段落,而我嘗試搜索的字符串可能在該段落的任何位置。 我不確定那塊衣服的大小。

在許多方面,您使用“查詢列”(類型奇特!)類型varchar2的相同方式。

表結構:

SQL> describe t
 Name                      Null?    Type
 ------------------------- -------- --------------------------------------------
 COL1                               VARCHAR2(20)
 COL2                               CLOB

表格內容:

SQL> select * from t;

COL1                 COL2
-------------------- -------------------------------------------------------
abc                  afdreed
azx;                 ffare21

查詢表(CLOB列上的where子句):

SQL> select * from t where col2 like '%dre%';

COL1                 COL2
-------------------- -----------------------------------------------------------
abc                  afdreed

希望這個例子可以清楚地說明我要解釋的內容。

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------------------------------------------

我建議您看一下DBMS_LOB軟件包( link )。 它具有一些對使用LOB有用的功能

例如:

  • Substr-函數從LOB開頭的絕對偏移量開始返回LOB的數量字節或字符。
  • Insrt-此函數從您指定的偏移量開始,返回LOB中第n個模式出現的匹配位置。
  • GetLength-此函數獲取指定LOB的長度。 返回以字節或字符為單位的長度。
  • 修剪 -此過程將內部LOB的值修剪為您在newlen參數中指定的長度。 為BLOB指定以字節為單位的長度,為CLOB指定以字符為單位的長度。

您也可以嘗試使用字符串函數。 它們中的一些能夠處理不大的lob文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM