[firebase-br] EXECUTE STATEMENT
Loerci Cardoso Groppo
gropinf em terra.com.br
Qua Jun 7 11:00:58 -03 2006
Ola a todos,
Criei uma SP com o comando FOR EXECUTE STATEMENT, porem funcionou enquanto
usava no select ate tres fields a partir do quarto comecou a dar erro, sendo
q a select q pretendo montar tem vinte campos e ira ficar assim:
Sendo q ainda preciso ajustar a clausula where.
CREATE PROCEDURE Q_CTA_RECEBERTESTE
RETURNS (
PEDIDO_ANOMES CHAR(6),
PEDIDO_FILIAL SMALLINT,
PEDIDO_ORDEM SMALLINT,
NOME_VENDEDOR CHAR(40),
COD_VENDEDOR SMALLINT,
NUMERO INTEGER,
DATA DATE,
EMISSAO DATE,
VENCTO DATE,
DT_PAGTO DATE,
COD_TP_PAGTO VARCHAR(4),
TP_PAGTO VARCHAR(15),
COD_BANCO VARCHAR(5),
VALOR NUMERIC(15,2),
COD_CLIENTE INTEGER,
OBS VARCHAR(200),
BAIXA DATE,
RESP_BAIXA VARCHAR(20),
CHEGOU VARCHAR(1),
PARCELA SMALLINT,
VALOR_PAGO NUMERIC(15,2),
FILIAL SMALLINT,
NBLOQ NUMERIC(12,1),
DAC CHAR(1),
PAGO VARCHAR(1),
RAZAO VARCHAR(60),
ENDERECO VARCHAR(50),
BAIRRO VARCHAR(20),
CIDADE VARCHAR(25),
OBS_REST VARCHAR(100),
TELEFONE VARCHAR(30),
JUROS NUMERIC(15,2),
TOTAL NUMERIC(15,2),
PEDIDO_NUMERO INTEGER,
DIAS_ATRZ INTEGER,
NUM_DOC VARCHAR(10),
NF INTEGER,
NCHEQ VARCHAR(14))
AS
DECLARE VARIABLE WFIELDS1 VARCHAR(1000);
DECLARE VARIABLE VAR_DTPAGTO DATE;
BEGIN
WFIELDS1='t16.numero,t16.data,t16.emissao,t16.vencimento,t16.pagto,t16.cod_t
ppagto,t16.cod_banco,t16.valor,';
WFIELDS1=WFIELDS1||'COALESCE(t16.cod_cliente,0),t16.obs,t16.baixa,t16.resp_b
aixa,t16.chegou,t16.PARCELA,';
WFIELDS1=WFIELDS1||'t16.VALOR_PAGO,t16.filial,T16.NBLOQ,t16.dac,t16.pago,T16
.obs_rest,';
WFIELDS1=WFIELDS1||'T16.pedido_anomes,T16.pedido_filial,T16.PEDIDO_NUMERO,t1
6.pedido_ordem,T16.NUM_DOC';
FOR EXECUTE STATEMENT
'SELECT '||:WFIELDS1||' FROM t16_contas_a_receber T16 WHERE t16.valor>0'
INTO
:NUMERO,
:DATA,
:EMISSAO,
:VENCTO,
:DT_PAGTO,
:COD_TP_PAGTO,
:COD_BANCO,
:VALOR,
:COD_CLIENTE,
:obs,
:BAIXA,
:resp_baixa,
:CHEGOU,
:PARCELA,
:VALOR_PAGO,
:FILIAL,
:NBLOQ,
:DAC,
:PAGO,
:OBS_REST,
:pedido_anomes,
:pedido_filial,
:PEDIDO_NUMERO,
:pedido_ordem,
:NUM_DOC
DO
BEGIN
SUSPEND;
END
END
Aguardo qq ajuda...
Ate +
Groppo
Mais detalhes sobre a lista de discussão lista