2016-05-10 52 views
0

我在努力研究如何在LOB中進行搜索。我嘗試以下,但得到了ORA-19011:字符串緩衝區太小,錯誤與LOBs拼搏

select * from gtpintr_data.sagadata sa where SA.DATA like '4780471'; 
+0

可能是不相關的,但不應該是'like'%4780471%'? – Utsav

回答

0

的SQL命令LIKE只適用於VARCHAR類型的數據類型像VARCHAR2。 Oracle必須將LOB轉換爲一個字符串才能運行查詢,因此如果它無法適應字符串的最大大小,它將會失敗。

可以在PL/SQL程序,而不是使用DBMS_LOB.INSTR

http://docs.oracle.com/database/121/ARPLS/d_lob.htm#ARPLS66715

但是,這將是緩慢的,你會需要調用它在表的每一行。

更好的選擇是在該列上添加Oracle文本索引並使用CONTAINS運算符。

http://docs.oracle.com/database/121/CCREF/toc.htm