| From: | Richard Huxton <dev(at)archonet(dot)com> |
|---|---|
| To: | Richard Hayward <richard(at)tortoise(dot)demon(dot)co(dot)uk> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: function parameters : bug? |
| Date: | 2005-07-14 08:14:15 |
| Message-ID: | 42D61ED7.1040707@archonet.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
Richard Hayward wrote:
> pg 8.0.3
> This behaviour seems odd to me:
>
> CREATE TABLE mytable (
> inta INTEGER
> );
>
> CREATE OR REPLACE FUNCTION myfunction (inta integer) RETURNS integer
> AS
> $body$
> begin
> insert into mytable(inta) values (inta);
> ERROR: syntax error at or near "$1" at character 22
> QUERY: insert into myTable( $1 ) values ( $2 )
> CONTEXT: PL/pgSQL function "myfunction" line 2 at SQL statement
>
> The problem is with the line in my myfunction:
> insert into mytable(inta) values (inta);
>
> The server doesn't like the field name being the same as the name of
> the function parameter. I don't see why, as I can see no opportunity
> for ambiguity.
So what would this do?
SELECT inta+1 FROM mytable
Agreed, it's tricky, but without some variable marker (e.g. $my_param)
or removing inline SQL from the language, I'm not sure there's much to do.
--
Richard Huxton
Archonet Ltd
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Richard Huxton | 2005-07-14 08:31:01 | Re: Possible to use a table to tell what table to select from? |
| Previous Message | Mark J Camilleri | 2005-07-14 07:46:59 | Error on dynamic code. |