[firebase-br] Fw: Erro no cmd Execute Statement

Sic sicinfo em netwizard.com.br
Seg Nov 5 14:40:09 -03 2007


Amigos, boa tarde.

Está ocorrendo a seguinte mensagem na sp que segue abaixo: Unsuccessful execution caused by an unavailable resource. Variable type (position 1) in EXECUTE STATEMENT 'select...' INTO does not match return.


Create procedure ENTER_RES_VDA1(pselect varchar(20), pselect1 varchar(20), pselect2 varchar(20))
returns(TXCPO2_1 varchar(30), TXCPO2_2 varchar(30), TXCPO2_3 varchar(30),
        T29CPO8 double precision, TOT_CPO2_2 double precision)
as
declare variable cmd_sel varchar(1000);
declare variable cmd_esc varchar(1000);
begin
   cmd_esc= 'Coalesce(Sum(T29.campo8), 0), Coalesce(Sum(T29.campo7), 0) from tabela29 T29 ' ||
            'inner join tabela28 T28 on (T28.campo1 = T29.campo3) ' ||
            'inner join tabela25 T25 on (T25.campo1 = T28.campo2) ' ||
            'inner join tabela1  T1  on (T1.campo2 = T29.campo4) ' ||
            'left join tabela5   T5  on (T5.campo1 = T1.campo18) ' ||
            'left join tabela6   T6  on (T6.campo1 = T1.campo19) ' ||
            'left join tabela7   T7  on (T7.campo1 = T1.campo20) ' ||
            'left join tabela8   T8  on (T8.campo1 = T1.campo21) ' ||
            'left join tabela9   T9  on (T9.campo1 = T1.campo22) ' ||
            'left join tabela10  T10 on (T10.campo1 = T1.campo23) ' ||
            'left join tabela11  T11 on (T11.campo1 = T1.campo24) ' ||
            'left join tabela81  T81 on (T81.campo1 = T1.campo38) ' ||
            'left join tabela104 T104 on (T104.campo1 = T1.campo41) ' ||
            'where T28.campo5 = ''A'' and T29.campo10 = ''A'' and T29.campo16="N"';
   cmd_sel= 'select ' || :pselect || ', ' || :pselect1 || ', ' || :pselect2 ||
            ', ' || :cmd_esc ||
            'group by ' || :pselect || ', ' || :pselect1 || ', ' ||:pselect2;

   For execute statement
     cmd_sel into :TXCPO2_1, :TXCPO2_2, :TXCPO2_3, :T29CPO8, :TOT_CPO2_2
   do
     suspend;



Os parâmetros de entrada recebem os campos. Ex.: pselect= T1.campo2, pselect1= T2.campo2, pselect2= T3.campo2.
Até agora não consegui encontrar o erro. O EXECUTE STATEMENT funciona qdo. há joiners?

[]'s


Mais detalhes sobre a lista de discussão lista