Wenn ich einige Objekte aus dba_source auswählen möchte, die eine Funktion verwendet. Ich kann es wieWie verwenden Sie mehrere LIKE-Anweisungen in einer Abfrage mit IN-Klausel und einer Unterabfrage?
Select * from dba_source where text like '%some_name%';
schreiben Wenn ich die gleiche Sache für mehrere Namen machen wollen. Wie mache ich es?
Ich bin mir der Verwendung von LIKE und OR bewusst, aber die Namen sind wieder aus einer anderen Tabelle. So ist es eine Möglichkeit, etwas zu tun:
SELECT * FROM DBA_SOURCE WHERE TEXT LIKE IN(SELECT PROCESS_NAME FROM PROCESSES);
Aber ich möchte auch Wildcard-Zeichen wie %
an den Enden hinzuzufügen.
Ist es möglich. oder kannst du einen anderen Weg vorschlagen?
Ich habe auch versucht
WITH pnames AS (SELECT PROCESS_NAME FROM PROCESSES)
SELECT * FROM DBA_SOURCE dbas WHERE INSTR(dbas.text,pnames.process_name,1,1)>0;
Es hat nicht funktioniert.
Beitritt mit% || % ist eine gute Idee. Aber es braucht mehr Zeit zu laufen. Gibt es eine bessere Art und Weise mit diesem
Sie können die Abfrage in zwei (verschachtelte) aufteilen, wobei die innere Abfrage die Liste der möglichen Wörter als 'select '%' || erhält Wort || '%' von .... '. Dies wird eine Sammlung von Platzhalterwerten zurückgeben, die Sie innerhalb des "IN" verwenden können. – FDavidov
Es gibt 3 andere Optionen in @Gilad, einschließlich in der oberen Antwort. – Ben
@Ben "Oracle Abfrage mit LIKE" ist keine gute Möglichkeit, diese Frage zu stellen. ist es? Wie werden die Leute es identifizieren, wenn die Frage nicht sehr erklärend ist? –