syntax error

From: Roberto Castro <robertoc35br(at)yahoo(dot)com(dot)br>
To: pgsql-bugs(at)postgresql(dot)org
Subject: syntax error
Date: 2006-04-17 19:01:21
Message-ID: 20060417190121.14682.qmail@web32905.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs



Boa Tarde !!

Numa aplicação, de acordo com o btnbotton clicado, a variável ‘opçao’ receberá um valor. No decorrer do processo, de acordo com a ‘opcao’ deverá executar um comando da function onde os valores a serem adicionados (input) serão supridos na aplicação.
Só que dá o seguinte erro:
ERROR: syntax error at or near "$1" at character 36
QUERY: insert into tb_conta_corrente (id, $1 , $2 , $3 , $4 , $5 , $6 , $7 , $8 , $9 , $10 , $11 , $12 , $13 , $14 , $15 , $16 , $17 , $18 , $19 , $20 , $21 ) values ( $22 , $23 , $24 , $25 , $26 , $27 , $28 , $29 , $30 , $31 , $32 , $33 , $34 , $35 , $36 , $37 , $38 , $39 , $40 , $41 , $42 )
CONTEXT: SQL statement in PL/PgSQL function "iud_tb_conta_corrente" near line 27

=== xxx ===
Syntax:

CREATE OR REPLACE FUNCTION iud_tb_conta_corrente(
codemp integer,
titulo integer,
tipolanc char,
placa varchar,
referencia varchar,
codgene varchar,
bordero integer,
codfor integer,
chave varchar,
dt_leilao date,
dt_cadastro date,
dt_pgto date,
dt_baixa date,
dt_envio date,
dt_recbto date,
tipomov char(1),
valor numeric(18,2),
tipo char,
observacao varchar,
usuario varchar,
data_hora timestamp,
opcao char) RETURNS varchar
AS $$
DECLARE
vcodemp ALIAS FOR $1;
vtitulo ALIAS FOR $2;
vtipolanc ALIAS FOR $3;
vplaca ALIAS FOR $4;
vreferencia ALIAS FOR $5;
vcodgene ALIAS FOR $6;
vbordero ALIAS FOR $7;
vcodfor ALIAS FOR $8;
vchave ALIAS FOR $9;
vdt_leilao ALIAS FOR $10;
vdt_cadastro ALIAS FOR $11;
vdt_pgto ALIAS FOR $12;
vdt_baixa ALIAS FOR $13;
vdt_envio ALIAS FOR $14;
vdt_recbto ALIAS FOR $15;
vtipomov ALIAS FOR $16;
vvalor ALIAS FOR $17;
vtipo ALIAS FOR $18;
vobservacao ALIAS FOR $19;
vusuario ALIAS FOR $20;
vdata_hora ALIAS FOR $21;
vopcao ALIAS FOR $22;
begin
if vopcao = 'I' then begin
insert into tb_conta_corrente (id,codemp,titulo,tipolanc,placa,referencia,codgene,bordero,codfor,chave,dt_leilao,dt_cadastro,dt_pgto,dt_baixa,dt_envio,dt_recbto,tipomov,valor,tipo,observacao,usuario,data_hora)
values (vcodemp,vtitulo,vtipolanc,vplaca,vreferencia,vcodgene,vbordero,vcodfor,vchave,vdt_leilao,vdt_cadastro,vdt_pgto,vdt_baixa,vdt_envio,vdt_recbto,vtipomov,vvalor,vtipo,vobservacao,vusuario,vdata_hora);
RETURN 1;
end if;
if (opcao = 'U') then begin
update tb_conta_corrente set codemp = vcodemp,
titulo = vtitulo,
tipolanc = vtipolanc,
placa = vplaca,
referencia = vreferencia,
codgene = vcodgene,
bordero = vbordero,
codfor = vcodfor,
chave = vchave,
dt_leilao = vdt_leilao,
dt_pgto = vdt_pgto,
dt_baixa = vdt_baixa,
dt_envio = vdt_envio,
dt_recbto = vdt_recbto,
tipomov = vtipomov,
valor = vvalor,
tipo = vtipo,
observacao = vobservacao,
usuario = vusuario,
data_hora = vdata_hora
where ( id = id and codemp = vcodemp
and placa = vplaca
and referencia = vreferencia
and codgene = vcodgene);
RETURN 2;
end if;
if (opcao = 'A') then begin
update tb_conta_corrente set codemp = vcodemp,
placa = vplaca,
referencia = vreferencia,
codgene = vcodgene,
bordero = vbordero,
codfor = vcodfor,
chave = vchave,
dt_pgto = vdt_pgto,
dt_baixa = vdt_baixa,
usuario = vusuario,
data_hora = vdata_hora
where ( id =id and codemp = codemp
and placa = placa
and referencia = referencia
and codgene = codgene
and dt_baixa is null);
RETURN 3;
end if;
if (opcao = 'D') then begin
delete from tb_conta_corrente
where ( id = id and codemp = codemp
and placa = placa
and tipolanc = tipolanc
and referencia = referencia
and codgene = codgene);
RETURN 0;
end if;
END $$
LANGUAGE 'plpgsql' VOLATILE ;

Se tiver uma idéia melhor... acatarei a sugestão..Uso Delphi 7. Estou migrando do Firebird p/ PostgreSql...... Apanhando muito !!!
Posso add vc no meu msn??
Grato

Roberto Castro
Robertoc35br(at)yahoo(dot)com(dot)br


---------------------------------
Abra sua conta no Yahoo! Mail - 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Alvaro 2006-04-17 20:58:29 BUG #2399: Postgis DLL corrupted
Previous Message Luckys 2006-04-17 04:58:02 Re: connection problem in postgresql