Как работает () в PL-SQL?

Получите много ненужных результатов, используя метод contains () в моем запросе. Не говори мне, что я использую что-то еще. Он жестко запрограммирован и не может быть изменен.

Содержит используется в текстовых полях с индексом CONTEXT, который индексирует текстовое поле для поиска. Стандартное использование похоже на это (использование оператора score для отображения того, что возвращается из предложения contains на основе 1 in, contains совпадение 1 в score ):

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

Для данных, подобных этому в таблице table_name

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

Этот запрос вернется

 2 A 1 C 

Таким образом, это похоже, похоже, но будет подсчитывать, сколько раз строка появляется в текстовом поле. Я не мог найти ресурс, используя Contains, как он используется в запросе, который вы отправили, но я думаю, что он вернет строки, где dFullText имеет хотя бы один экземпляр car или эквивалент этого sql:

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

Вот еще один источник.

См. Этот пример на 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;