É o que eu falei mesmo, Alex : é escrever uma FUNCTION que receba os parãmetros e internamente execute a expressão e retorne um número (zero ou um talvez) , aí vc teria que alterar o WHERE para incluir uma restrição do tipo :
... AND minhafuncdeindice(VlrIcm, VlrIpi, VlrIRF) > 0 e indexar a função. []s Chiappa --- Em [email protected], "Informatica" <[EMAIL PROTECTED]> escreveu > > > 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
