[firebase-br] Preciso de ajuda com Execute Statement

omar l m rosa omar em conesul.inf.br
Sex Ago 10 08:00:13 -03 2007


tem que por a data entre aspas!

----- Original Message ----- 
From: "Renato Bermudo" <renato em eturbo.com.br>
To: <lista em firebase.com.br>
Sent: Thursday, August 09, 2007 5:25 PM
Subject: [firebase-br] Preciso de ajuda com Execute Statement


Olá pessoal!

Preciso de uma ajuda com um bloco 'Execute Statement' executado em uma 
trigger.
O que está ocorrendo é que eu consigo concatenar vários tipos de variaveis, 
mas quando se trata de váriavel tipo DATE, ele retorna um erro, já tentei de 
tudo, se alguém puder me ajudar, o código é o seguinte:

    declare variable v_sql varchar(255);
    begin
      v_sql='';

      if (coalesce(new.apr_pgr_codigo,0)>0) then
        v_sql='pro_pgr_codigo='||new.apr_pgr_codigo;

      if (coalesce(new.apr_psg_codigo,0)>0) then
      begin
        if (v_sql<>'') then
          v_sql=v_sql||' and ';

        v_sql=v_sql||'pro_psg_codigo='||new.apr_psg_codigo;
      end

      if (coalesce(new.apr_pse_codigo,0)>0) then
      begin
        if (v_sql<>'') then
          v_sql=v_sql||' and ';

        v_sql=v_sql||'pro_pse_codigo='||new.apr_pse_codigo;
      end

      if (coalesce(new.apr_pma_codigo,0)>0) then
      begin
        if (v_sql<>'') then
          v_sql=v_sql||' and ';

        v_sql=v_sql||'pro_pma_codigo='||new.apr_pma_codigo;
      end

      execute statement
      'update produtos set
      pro_precopromocao=udf_rounddec(pro_precovenda-(pro_precovenda*'||
      cast(coalesce(new.apr_pdescpromocao,0) as varchar(15))||'/100),2),
      pro_dtiniciopromocao='||cast(new.apr_dtiniciopromocao as 
varchar(10))||',
      pro_dtfimpromocao='||cast(new.apr_dtfimpromocao as varchar(10))||
      ' where '||:v_sql;

Estou utilizando o 'Execute Statement' somente pelo filtro utilizado pela 
cláusula where.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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