[firebase-br] AJUDA COM PROCEDURE - ERRO “Column does not belong to referenced table.”

andre conrado acf.andre em gmail.com
Sex Maio 27 12:31:12 -03 2011


Diego,

1 - vc só pode referenciar campo de tabelas usando SELECT, DELETE e/ou UPDATE.
2 - Variáveis são para uso local, isto é, dentro da SP. Campos e
variáveis são estruturas distintas.
3 - O comando SUSPEND serve para retorno de informações da SP e tua SP
não possui campos de retorno.

espero ter ajudado.


Em 24/05/11, Mauricio<mauricio.shirley em gmail.com> escreveu:
> Em 24/05/2011 08:42, Diego Maccari escreveu:
>> Boa Dia Pessoal
>>
>> Criei esta Procedure no IBExpert, mas não estou conseguindo faze-la
>> funcionar toda vez me aparesse a mesma mensagem:
>>
>> “Column does not belong to referenced table.” – A Coluna não pertence a
>> tabela referenciada.
>>
>> Já verifiquei várias vezes e não consegui descobrir o erro, todos os
>> campos estão escritos corretamente no SQL.
>>
>> Será que alguém poderia dar alguma dica pra resolver e/ou otimizar esta
>> PROCEDURE ?
>>
>>
>> o Erro esta ocorrendo nesta linha “PIS = ((TB_IN_981_4104.BASE_CALCULO_PIS
>> / 100) * TB_IN_981_4104.ALIQUOTA_PIS);”
>>
>>
>> Segue o codigo SQL:
>>
>> SET TERM ^ ;
>>
>> CREATE OR ALTER PROCEDURE PROPORCIONA_PIS (percent_ex decimal(18,4),
>> percent_mi decimal(18,4), percent_nt decimal(18,4))
>> as
>> declare variable pis decimal(18,2);
>> declare variable pis_ex decimal(18,2);
>> declare variable pis_mi decimal(18,2);
>> declare variable pis_nt decimal(18,2);
>> BEGIN
>>    PIS = ((TB_IN_981_4104.BASE_CALCULO_PIS / 100) *
>> TB_IN_981_4104.ALIQUOTA_PIS);
>>    PIS_EX = (((TB_IN_981_4104.BASE_CALCULO_PIS  / 100) *
>> TB_IN_981_4104.ALIQUOTA_PIS) * PERCENT_EX / 100);
>>    PIS_MI = (((TB_IN_981_4104.BASE_CALCULO_PIS  / 100) *
>> TB_IN_981_4104.ALIQUOTA_PIS) * PERCENT_MI / 100);
>>    PIS_NT = (((TB_IN_981_4104.BASE_CALCULO_PIS  / 100) *
>> TB_IN_981_4104.ALIQUOTA_PIS) * PERCENT_NT / 100);
>>
>>    IF (PIS_EX>  0.0000) THEN
>>      IF (PIS_EX<  0.0100) THEN
>>        PIS_EX = 0.0100;
>>
>>    IF (PIS_MI>  0.0000) THEN
>>      IF (PIS_MI<  0.0100) THEN
>>        PIS_MI = 0.0100;
>>
>>    IF (PIS_NT>  0.0000) THEN
>>      IF (PIS_NT<  0.0100) THEN
>>        PIS_NT = 0.0100;
>>
>>    UPDATE tb_in_981_4104
>>    SET
>>      VALOR_PIS = PIS,
>>      VALOR_PIS_EXPORTACAO = PIS_EX,
>>      VALOR_PIS_MERC_INTERNO = PIS_MI,
>>      VALOR_PIS_N_TRIB_INTERNO = PIS_NT
>>    WHERE
>>      CNPJ = '00.000.000/0001-91' AND MES = 'Janeiro' AND ANO = 2010 AND
>>      CODIGO_SIT_TRIBUTARIA_PIS = '70' AND CODIGO_SIT_TRIBUTARIA_COFINS =
>> '70';
>>
>>    SUSPEND;
>> END^
>>
>> SET TERM ; ^
>>
>> GRANT SELECT,UPDATE ON TB_IN_981_4104 TO PROCEDURE NEW_PROCEDURE;
>>
>>
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> esta faltando a referencia dos campos  :
>
> TB_IN_981_4104.BASE_CALCULO_PIS
> TB_IN_981_4104.ALIQUOTA_PIS
>
> qual tabela ela vem ? acho que voce precisa fazer um select ai....
>
> abs
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa


-- 
Um Abraço,
André Conrado.

055 21 9176-7013 - Claro




Mais detalhes sobre a lista de discussão lista