Thread: INSERT INTO foo (col1,col2,...,coln) not working

INSERT INTO foo (col1,col2,...,coln) not working

From
"Juan Francisco Diaz"
Date:
INSERT INTO foo (col1,col2,...,coln) not working
INSERT INTO foo (col1,col2,...,coln) not working
INSERT INTO foo (col1,col2,...,coln) not working
X-Mailer: NeoMail 1.25
X-IPAddress: 64.76.48.99
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1


Why does this statement:

insert into Topos (IdLibro, Pagina, IdTopo, IdReferencia, PosX, PosY, Ancho, Alto) values
(CAST(Libro AS CHAR(6)), pag, CAST(Topo As CHAR(6)), CAST(Refe AS CHAR(6)), posX,
posY, Ancho, Alto);

gives me this error (the statement is on line 16 of a function, all aliases are ok):

WARNING:  Error occurred while executing PL/pgSQL function instopo
WARNING:  line 16 at SQL statement
ERROR:  parser: parse error at or near "$1" at character 60

and on the other hand this statement;

insert into Topos  values (CAST(Libro AS CHAR(6)), pag, CAST(Topo As CHAR(6)),
CAST(Refe AS CHAR(6)), posX, posY, Ancho, Alto);

works fine? The column names are ok i double checked that...

help! thanks

JuanF


Re: INSERT INTO foo (col1,col2,...,coln) not working

From
Stephan Szabo
Date:
On Mon, 25 Aug 2003, Juan Francisco Diaz wrote:

> Why does this statement:
>
> insert into Topos (IdLibro, Pagina, IdTopo, IdReferencia, PosX, PosY, Ancho, Alto) values
> (CAST(Libro AS CHAR(6)), pag, CAST(Topo As CHAR(6)), CAST(Refe AS CHAR(6)), posX,
> posY, Ancho, Alto);
>
> gives me this error (the statement is on line 16 of a function, all aliases are ok):
>
> WARNING:  Error occurred while executing PL/pgSQL function instopo
> WARNING:  line 16 at SQL statement
> ERROR:  parser: parse error at or near "$1" at character 60

At least Ancho and Alto appear to be being used both as column names and
variable names.  You probably need to make sure that the variables don't
exactly match the column names (otherwise the substitutions will be done
in the column list iirc).