web-dev-qa-db-ja.com

アンダースコアがOracleのlike句で機能しない

開発時には、「test_1%」を使用して「test_123」を「いいね」で見つけました。しかし、本番環境では機能しません。 'エスケープ'\'の使用は機能しています。オラクルで設定する必要がある設定はありますか?エスケープせずに使用したい '\' '。

17
Ramesh

sQL Developerでこれを試してください:

SELECT * FROM TABLE1 WHERE NAME LIKE 'test\_1%' escape '\'

sQLプラス:

set escape '\'
SELECT * FROM TABLE1 WHERE NAME LIKE 'test\_1%';
28
Hamidreza

ESCAPE '\'を使用した他の回答は機能しませんでしたが、REPLACE関数を使用してこの問題を解決することができました。

SELECT * FROM name_of_table WHERE REPLACE(description, '_', '~') LIKE 'testing~%';
0
laughsloudly

Oracleでは、次のようにESCAPEを使用することもできます。

SELECT * FROM name_of_table WHERE description LIKE 'testing\_%' ESCAPE '\';
0
Sohail xIN3N