Sem dúvida - e só pra exemplificar, mostro abaixo que NÃO DEVE ser problema de
permissão, nem de citar ou não o nome do schema antes da tabela :
=> vou criar um sinônimo público - não que seja o método Recomendado de se
abstrair o OWNER, mas só pra exemplo :
SYSTEM@xepdb1::CONTAINER=XEPDB1> create public synonym LIVRO for SCOTT.LIVRO;
Sinnimo criado.
SYSTEM@xepdb1::CONTAINER=XEPDB1>
=> dou GRANT de SLECT na tabela - é LÓGICO que o GRANT de SELECt já ENGLOBA o
acesso a TODOS os índices existentes :
SCOTT@xepdb1::CONTAINER=XEPDB1> grant select on scott.LIVRO to HR;
Concessão bem-sucedida.
SCOTT@xepdb1::CONTAINER=XEPDB1>
=> pronto, vou fazer pesquisas que acessam o índice , tanto NÃO CITANDO quando
CITANDO o owner :
HR@xepdb1::CONTAINER=XEPDB1> select * from LIVRO where
CONTAINS(LIV_TITULO,'direito',1) > 0;
LIV_TITULO LIV_TEXTO
--------------------- ---------------------------------
Como nasce o Direito
Direito como Ciencia
2 linhas selecionadas.
HR@xepdb1::CONTAINER=XEPDB1> select * from SCOTT.LIVRO where
CONTAINS(LIV_TITULO,'direito',1) > 0;
LIV_TITULO LIV_TEXTO
--------------------- ---------------------------------
Como nasce o Direito
Direito como Ciencia
2 linhas selecionadas.
HR@xepdb1::CONTAINER=XEPDB1>
==> eu RECOMENDARIA lá pro colega CONFIRMAR com queries na DBA_SYNONYMS<
DBA_OBJECTS, DBA_TABLES, DBA_INDEXES, CTX_INDEXES, CTX_OBJECTS e etc que
REALMENTE tudo foi criado nos schemas CORRETOS e referenciando os objetos
Corretos....
[]s
Chiappa
Em quarta-feira, 11 de março de 2020 12:53:20 BRT, Jorge luiz
[email protected] [oracle_br] <[email protected]> escreveu:
Ou seja, seja estiver buscando de OWNERS diferentes, pode ser como vc bem
colocou índices desatualizados.
JLVAZ
Em quarta-feira, 11 de março de 2020 12:45:28 BRT, Jorge luiz
[email protected] [oracle_br] <[email protected]> escreveu:
Realmente Chiappa ! Me parece haver um motivo aparentemente sutíl. Não existe
uma motivação diferente para esse erro, como demonstrado pelo exemplo.
JLVAZ
Em quarta-feira, 11 de março de 2020 12:35:35 BRT, Jose Laurindo Chiappa
[email protected] [oracle_br] <[email protected]> escreveu:
Ah sim : o *** mínimo *** que se espera é que o colega lá SAIBA em qual schema
está criando o índice, que o índice ESTEJA sendo criado na tabela CORRETA do
SCHEMA correto.....Porém, se esse schema ERPEDU_PRODUCAO realmente for o schema
correto que contém TANTO a tabela QUANTO o índice, vc prefixar a tabela com o
schema não deveria dar diferença alguma, tanto select liv_titulo from LIVRO
where CONTAINS(LIV_TITULO.... quanto select liv_titulo from
ERPEDU_PRODUCAO.LIVRO where CONTAINS(LIV_TITULO..... DEVERIAM dar na mesmaneste
caso : realmente, fica por conta do colefa que fez a pergunta verificar se
estava conectado no schema correto quando criou o índice (que nem eu fiz no meu
exemplo), verificar se não há sinônimos eventualmente apontando pra OUTROS
objetos tambpem chamados LIVRO, sim........
[]s
Chiappa
Em quarta-feira, 11 de março de 2020 12:23:12 BRT, Jorge luiz
[email protected] [oracle_br] <[email protected]> escreveu:
Os selects são diferentes :
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;
Não sei de onde ele está buscando o primeiro select, mas foi onde vc criou os
índices.
Verifique o OWNER. É complicado responder só observando, mas parece que tem
algo de estranho nessa segunda execução.
Abçs