2016-05-10 20 views
0

LOBを検索する方法を理解するのに苦労しています。私は、次のことをしようとしているが、ORA-19011を得た:文字列バッファが小さすぎ、エラーLOBを使用して苦労する

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

は無関係かもしれないが、それは '' '%4780471%' のようなことではないでしょうか? – Utsav

答えて

0

SQL LIKEコマンドのみVARCHAR2のようなVARCHAR型のデータ型で動作します。 Oracleは問合せを実行するためにLOBを文字列に変換する必要があります。したがって、文字列の最大サイズに収まらない場合は失敗します。

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

をしかし、あなたは、テーブルの行ごとにそれを呼び出す必要があるだろうとして、それが遅くなります。

あなたは代わりに、PL/SQLプログラムでDBMS_LOB.INSTRを使用することができます。

より良い代替方法は、列にOracle Text索引を追加し、CONTAINS演算子を使用する方法です。

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

関連する問題