No caso a expressão seria sempre a mesma. É só um processo da empresa 
que precisa de uma seleção deste tipo. 
        Agradeço o retorno.

        []'s do Alex!

        O jeito de um sonho se tornar verdadeiro é o jeito que temos de tirar 
verdades do sonho. 
        (James Hillman)

        Alexssandro André Gottschalk
        Informática - A. Grings S.A.
    mailto:[EMAIL PROTECTED]
MSN Messenger: [EMAIL PROTECTED]
          (51) 3545-1000 (R.: 359)
               Igrejinha - RS

-----Mensagem original-----
De: [email protected] [mailto:[EMAIL PROTECTED] Em nome de jlchiappa
Enviada em: segunda-feira, 15 de maio de 2006 10:33
Para: [email protected]
Assunto: [oracle_br] Re: Índice para uma experssão. Tem como??

Alex, pra vc poder indexar tem que ser alguma coisa fixa, que retorne 
um único valor dado o mesmo input, e que conste no dicionário de 
dados permanentemente : colunas obdedecem à isso, functions obedecem 
á isso, expressões não, então o que vc faria é uma FUNCTION que 
receba os parãmetros e internamente execute a expressão e retorne 
zero um um, aí vc teria que alterar o WHERE para incluir uma 
restrição do tipo :

...
  AND minhafuncdeindice(VlrIcm, VlrIpi, VlrIRF) > 0
...

é isso. Logicamente, no bd Oracle um índice NÃO é dinâmico, ie, 
apenas quando vc cria o índice é que a expressão é "compilada", a 
chave resultante é montada, armazenada e daí pra frente nos DMLs a 
chave tem seu valor alterado/deletado ou são criadas novas chaves mas 
sempre com a MESMA condição/expressão do CREATE, assim isso vai ter 
servir se a expressão SEMPRE é VlrIcm+VlrIpi+VlrIRF, se hoje é 
VlrIcm+VlrIpi+VlrIRF amanhã é outra o índice NÃO vai te servir, a não 
ser que vc o recire a cada mudança de expressão.

[]s

 Chiappa
 
--- Em [email protected], "Informatica" <[EMAIL PROTECTED]> 
escreveu
>
>     Bom dia, tenho um SQL aqui na empresa que para a seleção é 
utilizada uma expressão matemática para restrição dos dados. Existe 
uma maneira de criar uma índice para uma expressão assim como pode 
ser criado índice para uma função??
>  
>     O SQL seria algo como:
>  
>     Select CodCli, DatEnt, NumNfv From Notas
>               Where (VlrIcm+VlrIpi+VlrIRF) > 0;
>  
>     Existem outros campos envolvidos na seleção, mas a expressão é 
o mais restritivo. Alguma sugestão??
>  
> Oracle 10g (10.1.0.5.0) on MS Windows 2003 
>  
>         []'s do Alex!
> 
>         O jeito de um sonho se tornar verdadeiro é o jeito que 
temos de tirar verdades do sonho. 
>         (James Hillman)
> 
>         Alexssandro André Gottschalk
>         Informática - A. Grings S.A.
>     mailto:[EMAIL PROTECTED]
> MSN Messenger: [EMAIL PROTECTED]
>           (51) 3545-1000 (R.: 359)
>                Igrejinha - RS
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>







--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/[email protected]/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos




 




--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/[email protected]/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a