Chiappa,
Valeu pela ajuda...mas não conseguí.
A solução com : coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA
like '%param3%'
No meu caso não funcionou.

No meu exemplo:

CREATE TABLE arq.teste (cod NUMBER, vlr  VARCHAR2(20))

INSERT INTO TESTE (COD,VLR) VALUES (1,'1')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'2')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (1,'4')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'3')/
INSERT INTO TESTE (COD,VLR) VALUES (2,'4')/

Pesquisar o documento que tenha as palavras *1 e 3.*

1)
 SELECT COD,VLR FROM ARQ.TESTE
 WHERE VLR LIKE '%1%' AND VLR LIKE '%3%'
 > No results.

2)
 SELECT COD,VLR FROM ARQ.TESTE
 WHERE VLR LIKE '%1%' OR VLR LIKE '%3%'
>
  1 1
  1 3
  2 3

(Resultado igual ao IN)

Queria algo que atendende apenas aqueles que tivessem o valor 1 e 3.

Valeu, pela ajuda
Vou tentar outra coisa aqui!



2009/7/31 jlchiappa <jlchia...@yahoo.com.br>

>
>
> Colega, vamos por partes aí : primeiro de tudo, vamos entender : o WHERE é
> uma cláusula aplicada a CADA REGISTRO, um por vez, para filtragem, e o
> operador ALL indica que a condição deve ser verdadeira para TODOS os valores
> - sabendo-se isso, uma condição
>
> WHERE coluna = ALL (x, y, z)
>
> evidentemente *** NUNCA *** vai ser verdadeira, pois um valor de uma coluna
> NUNCA vai ser igual aos três ao mesmo tempo, ok ??? Óbvio que vc obteve "No
> Results" na sua primeira tentativa... O que vc quer é pesquisar NÂO por
> Igualdade, mas por presença, então esqueça o '=' , blz ? No banco 8i, já que
> vc não tem a REGEXPe iirc não tem Contexts também, as únicas opções pra se
> pesquisar por existência de uma substring dentro de outra são : o LIKE, as
> funções string tipo INSTR, escrita de uma função PL/SQL customizada sua ou
> alguma combinação complexa com Analytics (estes já existiam no 8i, só não
> lembro o release 8i exato em que foram introduzidos).
> Para usar o LIKE ou funções built-in, isso VAI implicar em SQL dinâmico,
> imagino que vc terá que ter uma rotina sua, que recebe os parâmetros
> digitados e os expande em vários LIKE, tipo :
>
> WHERE coluna LIKE '%param1%' AND coluna LIKE '%param2%' and COLUNA like
> '%param3%'
>
> ou com built-ins se quiser, algo assim..
>
> A opção de função customizada sua seria algo que vc chamaria no WHERE, tipo
> :
>
> WHERE minha_função(coluna, paramdebusca1, paramdebusca2, paramde busca3) =
> 1 ...
>
> lógico, NENHUMA dessas alternativas vão ser extremamente saudável pra
> performance, mas é isso... A menos danosa imagino que seria montar alguma
> combinação com Analytics, mas e algo a se pesquisar...
>
> []s
>
> Chiappa
> --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>,
> Pablo Câmara <pscam...@...> escreveu
> >
> > *paramentroDaTela := BABCOCK DIGIMAPAS TUBO*
>
> > *
> > *
> > *1) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
> TXT_DOCUMENTO
> > IN (paramentroDaTela)*
> > *
> > *
> > *No caso 1: vai retornar o código de varios documentos. Sendo uma tabela
> > de 3 milhoes de registros. Fica inviável.*
> > *
> > *
> > *2) SELECT COD_DOCUMENTO FROM ARQ.REFERENCIAS_DOCUMENTOS WHERE
> TXT_DOCUMENTO
> > =ALL (paramentroDaTela)*
> > *
> > *
> > *No caso 2: Se o comando funcionasse, traria apenas o código do
> documento,
> > no qual todas as palavras passadas como paramentro fazem parte.*
> > *
> > *
> > *Alguem tem alguma outra sugestão? PS: ORACLE 8I.*
> > *
> > *
> > *Em outras versões do oracle (a partir do 9i) eu utilizo o regexp_like.
> Ou
> > faço a busca por contexto.*
> > *
> > *
> > *Pablo*
> > *
> > *
> > *
> > *
> > *
> > *
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a