Re: [firebase-br] Por que Into não funciona neste select

Jeferson Oliveira jefersonfoliveira em gmail.com
Seg Abr 24 09:57:25 -03 2006


Washington,

Desculpe-me, mas não entendi bem sua última mensagem.
O problema de só mostrar "exception_msg" ocorre com a trigger na forma
original ou da maneira que sugeri?
Em meus testes a forma sugerida funcionou adequadamente; já a primeira, com
a claúsula exists retornando valor para uma variável, nem compila (Fb
1.5.0.4306).


Abraço!
Jeferson Oliveira



Em 23/04/06, NextCorp Informatica <nextcorp em terra.com.br> escreveu:
>
> Ok
>
> Jeferson
>
> O problema e que assim como fiz funciona. Só que desta forma ele executa o
> exception mas não mostra a msg so mostrando
> exception_msg.
>
> Por isto o exception ele executa, mas não mostra a msg com o parametro
> wnome.
>
>
> Atenciosamente
>
> Washington A. Müller da Silva
>
> #####################
> NextCorp Informática Ltda
> www.nextcorp.com.br
> nextcorp em terra.com.br
> 0 xx (51)-3589-3690
> ####################
> ----- Original Message -----
> From: "Jeferson Oliveira" <jefersonfoliveira em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Saturday, April 22, 2006 9:58 AM
> Subject: Re: [firebase-br] Por que Into não funciona neste select
>
>
> Washington,
>
> O sentença SQL passada como parâmetro na função "exists" é utilizada
> apenas
> para testar a existência ou não de registros que atendam às condições
> expecificadas, e não retornam valor para uma variável.
>
> Você pode atribuir o valor antes, e então testar o valor da variável.
> Exemplo:
>
> begin
> select coalesce(b.aux_nome, c.dep_nome)
> from convenios_medicos a left join auxiliares b on a.com_codbarra =
> b.aux_codbarra left join dependentes c on a.com_codbarra = c.dep_codbarra
> where (com_aux_codigo = new.com_aux_codigo) and (com_grau = 'T') and
> (com_cod_convenio = new.com_cod_convenio)
> into :wnome;
>
> if (:wnome <> '') then
>    exception exception_msg 'O conveniado '||:wnome||' já é o titular deste
> convênio.';
> end
>
> Abraço!
> Jeferson Oliveira
>
>
> Em 21/04/06, NextCorp Informatica <nextcorp em terra.com.br> escreveu:
> >
> > Caros colegas
> >
> > Estou fazendo a seguinte trigger para saber se um determinado usuário do
> > mesmo convenio e codigo já existe no cadastro de convenios medicos, mas
> não
> > funciona por causa do into alguem sabe por que.
> >
> > ---------- STATEMENT ----------
> >
> > ALTER TRIGGER TR_VERIF_TIT_CONVMED_BIU0
> > ACTIVE BEFORE INSERT OR UPDATE POSITION 0
> > AS
> > declare variable wnome varchar(25);
> > begin
> > if (exists (
> >     select Coalesce(b.aux_nome, c.dep_nome)
> >     from convenios_medicos a Left Join auxiliares b On a.com_codbarra =
> > b.aux_codbarra Left Join dependentes c on a.com_codbarra =
> c.dep_codbarra
> >     where (com_aux_codigo = new.com_aux_codigo) and (com_grau = 'T') and
> > (com_cod_convenio = new.com_cod_convenio)
> >     into :wnome) then
> >        exception exception_msg 'O conveniado '||:wnome||' já é o titular
> > deste convênio.';
> > end
> >
> >
> > ---------- ERROR MESSAGE ----------
> >
> > Invalid token.
> > Erro de SQL dinamico.
> > codigo do erro SQL = -104.
> > Simbolo desconhecido - linha 10, caractere 6.
> > into.
> >
> > Atenciosamente
> >
> > Washington A. Müller da Silva
> >
> > #####################
> > NextCorp Informática Ltda
> > www.nextcorp.com.br
> > nextcorp em terra.com.br
> > 0 xx (51)-3589-3690
> > ####################
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
>
> http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=nextcorp&_l=1,1145710762.210208.32022.mangoro.hst.terra.com.br,5991,Des15,Des15
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 21/04/2006 / Versão: 4.4.00
> /4746
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>
>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.1.385 / Virus Database: 268.4.4/318 - Release Date: 18/04/2006
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa



Mais detalhes sobre a lista de discussão lista