Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie funktioniert contains() in PL-SQL?

Contains wird für Textfelder verwendet, die einen 'CONTEXT Index' haben, der ein Textfeld für die Suche indiziert. Die Standardverwendung ist so (unter Verwendung des score -Operator, um anzuzeigen, was von contains zurückgegeben wird -Klausel basierend auf der 1 in contains Übereinstimmung mit der 1 in score ):

SELECT score(1), value
FROM table_name
WHERE CONTAINS(textField, 'searchString', 1) > 0;

Für solche Daten in Tabelle table_name

value  |  textField
-------|-----------------------------------------------
A      |   'Here is searchString.  searchString again.'
B      |   'Another string'
C      |   'Just one searchString'

Diese Abfrage würde

zurückgeben
2 A
1 C

Enthält ist also ähnlich wie like, zählt aber, wie oft ein String in einem Textfeld vorkommt. Ich konnte keine Ressource finden, die Contains so verwendet, wie sie in der von Ihnen geposteten Abfrage verwendet wird, aber ich denke, das würde Zeilen zurückgeben, in denen dFullText hat mindestens eine Instanz von car darin, oder das Äquivalent von diesem sql:

Select * from blabla where dFullText like "%car%"

Hier ist eine weitere Quelle.