Olá Senhores,
Estou com uma situação que realmente não consigo entender. Existe muitos livros 
com a palavra direito e quando uso o CONTAINS  o Oracle não me retorna nenhuma 
linha.
Veja como fiz  
* Criei uma preferencia para se case-insentive e ignorar acentos.
BEGIN



  CTX_DDL.CREATE_PREFERENCE ('MIXED_CASE_LEXER_PREF','BASIC_LEXER');

  CTX_DDL.SET_ATTRIBUTE    ('MIXED_CASE_LEXER_PREF', 'mixed_case', 'FALSE');

 CTX_DDL.SET_ATTRIBUTE     ('MIXED_CASE_LEXER_PREF', 'base_letter', 'TRUE'); 

END;
/
* Depois criei o index sobre a coluna LIV_TITULO.


  CREATE INDEX IDX_SEARCH_LIV_TITULO ON  "LIVRO" ("LIV_TITULO")    INDEXTYPE IS 
"CTXSYS"."CONTEXT"  PARAMETERS ('LEXER DBAEFIKASE.MIXED_CASE_LEXER_PREF')

Quando Executo o SQL veja o que ocorre;

 SQL> select liv_titulo from LIVRO where CONTAINS(LIV_TITULO,'direito',1) > 0;
nÒo hß linhas selecionadas
SQL> select liv_titulo from ERPEDU_PRODUCAO.LIVRO where 
CONTAINS(LIV_TITULO,'direito and nasce',1) > 0;
LIV_TITULO--------------------------------------------------------------------------------Como
 nasce o direito
Como nasce o direitoComo nasce o direito

Observem que a primeira consulta e é abrangente não traz linhas, mas quando 
pesquiso por "direito" AND "nasce" o Oracle encontra as linhas. Alguém consegue 
entender este comportamento?

Obrigado. 




  • ... Alessandro Lúcio Cordeiro da Silva alecordeirosi...@yahoo.com.br [oracle_br]
    • ... et...@schiavini.inf.br [oracle_br]

Responder a