いくつかの機能を使用するdba_sourceからいくつかのオブジェクトを選択する場合。私は複数の名前のために同じことをしたい場合は 私はIN句とサブクエリを持つクエリで複数のLIKE文を使用するにはどうすればよいですか?
Select * from dba_source where text like '%some_name%';
のようにそれを書くことができます。どうすればいいのですか?
私はLIKEとORの使用法を認識していますが、名前はもう一度別のテーブルから取得しています。
SELECT * FROM DBA_SOURCE WHERE TEXT LIKE IN(SELECT PROCESS_NAME FROM PROCESSES);
しかし、私はまた、両端に%
のようなワイルドカード文字を追加したい:だから、のような何かをする方法はあります。
可能ですか?他の方法で提案することはできますか?
また、私はそれが動作しませんでした
WITH pnames AS (SELECT PROCESS_NAME FROM PROCESSES)
SELECT * FROM DBA_SOURCE dbas WHERE INSTR(dbas.text,pnames.process_name,1,1)>0;
を試してみました。
%|| %は良い考えです。しかし、それには時間がかかります。この
クエリを2つ(ネストされた)に分割することができます。内側のクエリは、可能な単語のリストを 'select 'として取得します。単語|| '%'から.... '。これは、 'IN'内で使用できるワイルドカードによる値のコレクションを返します。 – FDavidov
@Giladには3つのオプションがあります。 – Ben
@Ben「LIKEを使用したOracleクエリー」は、その質問をするうまい方法ではありません。それは...ですか?その質問があまり説明できないときに、人々はどのようにそれを特定するのだろうか。 –