0
我在努力研究如何在LOB中進行搜索。我嘗試以下,但得到了ORA-19011:字符串緩衝區太小,錯誤與LOBs拼搏
select * from gtpintr_data.sagadata sa where SA.DATA like '4780471';
我在努力研究如何在LOB中進行搜索。我嘗試以下,但得到了ORA-19011:字符串緩衝區太小,錯誤與LOBs拼搏
select * from gtpintr_data.sagadata sa where SA.DATA like '4780471';
的SQL命令LIKE只適用於VARCHAR類型的數據類型像VARCHAR2。 Oracle必須將LOB轉換爲一個字符串才能運行查詢,因此如果它無法適應字符串的最大大小,它將會失敗。
您可以在PL/SQL程序,而不是使用DBMS_LOB.INSTR
:
http://docs.oracle.com/database/121/ARPLS/d_lob.htm#ARPLS66715
但是,這將是緩慢的,你會需要調用它在表的每一行。
更好的選擇是在該列上添加Oracle文本索引並使用CONTAINS運算符。
可能是不相關的,但不應該是'like'%4780471%'? – Utsav