syntax error - Mailing list pgsql-bugs
From | Roberto Castro |
---|---|
Subject | syntax error |
Date | |
Msg-id | 20060417190121.14682.qmail@web32905.mail.mud.yahoo.com Whole thread Raw |
Responses |
Re: syntax error
|
List | 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 acordocom a opcao deverá executar um comando da function onde os valores a serem adicionados (input) serão supridos naaplicaçã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...... Apanhandomuito !!! Posso add vc no meu msn?? Grato Roberto Castro Robertoc35br@yahoo.com.br --------------------------------- Abra sua conta no Yahoo! Mail - 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz.
pgsql-bugs by date: