web-dev-qa-db-fra.com

Comment contient-il () dans PL-SQL?

Avoir beaucoup de résultats inutiles en utilisant la méthode includes () dans ma requête. Ne me dites pas d'utiliser comme ou autre chose. Il est codé en dur et ne peut pas être changé. 

13
Artic

Contains est utilisé sur les champs de texte dotés d'un 'Index CONTEXT', qui indexe un champ de texte pour la recherche. L'usage standard est le suivant (utilisation de l'opérateur score pour afficher ce qui est renvoyé par la clause contains en fonction du 1 dans contains correspondant au 1 dans score):

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

Pour des données comme celle-ci dans la table table_name

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

Cette requête retournerait 

2 A
1 C

Donc contient est semblable à aimer, mais comptera le nombre de fois qu'une chaîne se produira dans un champ de texte. Je ne pouvais pas trouver une ressource utilisant Contains de la manière dont il est utilisé dans la requête que vous avez postée, mais je pense que cela renverrait des lignes où dFullText contient au moins une instance de car ou l'équivalent de ce SQL:

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

Ici est une autre source.

16
rosscj2533

Voir cet exemple de Oracle.com

declare 
rowno number := 0; 
   begin 
   for c1 in (SELECT SCORE(1) score, title FROM news 
          WHERE CONTAINS(text, 'Oracle', 1) > 0
          ORDER BY SCORE(1) DESC) 
   loop 
   rowno := rowno + 1; 
   dbms_output.put_line(c1.title||': '||c1.score); 
exit when rowno = 10; 
end loop; 
end; 
0
Padmarag