我正在努力弄清楚如何在一个LOB中进行搜索。我尝试了以下操作,但得到了ORA-19011:字符串缓冲区太小,错误
select * from gtpintr_data.sagadata sa where SA.DATA like '4780471';发布于 2016-05-11 01:11:30
SQL命令仅适用于varchar类型的数据类型(如VARCHAR2 )。Oracle必须将LOB转换为字符串才能运行您的查询,因此,如果它不能使其适应字符串的最大大小,它将失败。
您可以在PL/SQL程序中使用DBMS_LOB.INSTR:
lob.htm#ARPLS66715
但是这将是缓慢的,因为您需要为表中的每一行调用它。
另一种更好的方法是在列上添加Oracle文本索引并使用CONTAINS操作符。
http://docs.oracle.com/database/121/CCREF/toc.htm
https://stackoverflow.com/questions/37133418
复制相似问题