From: | "Wood, Bruce" <Bruce(dot)Wood(at)ngc(dot)com> |
---|---|
To: | "PostgreSQL Docs" <pgsql-docs(at)postgresql(dot)org> |
Subject: | PREPARE statement example error. |
Date: | 2004-10-29 18:37:21 |
Message-ID: | 727B82C682D8E8409BD807B361874F4102208FD3@xcgmd050.northgrum.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
There is an error in your example for the prepare statement on page http://developer.postgresql.org/docs/postgres/sql-prepare.html.
Using the example from the link above
rainstorm=> PREPARE fooplan (int, text, bool, numeric(8,2)) AS
rainstorm-> INSERT INTO foo VALUES($1, '$2', '$3', '$4');
ERROR: invalid input syntax for type boolean: "$3"
Taking out the single quotes around the boolean parameter 3 yields
rainstorm=> PREPARE fooplan (int, text, bool, numeric(8,2)) AS
rainstorm-> INSERT INTO foo VALUES($1, '$2', $3, '$4');
ERROR: invalid input syntax for type real: "$4"
So take out the single quotes around the numeric parameter 4 yields
rainstorm=> PREPARE fooplan (int, text, bool, numeric(8,2)) AS
rainstorm-> INSERT INTO foo VALUES($1, '$2', $3, $4);
PREPARE
rainstorm=> EXECUTE fooplan(1, 'Hunter Valley', 't', '200.00');
INSERT 0 1
So that "works", but what it does is
rainstorm=> select * from foo;
key | address | valid | cost
-----+---------+-------+------
1 | $2 | t | 200
(1 row)
It inserts the literal string of parameter two rather than the value provided for parameter 2. This is in the PostgreSQL 8 beta 4 Windows native version.
Bruce Wood Reception (301) 373-2360
Northrop Grumman PRB Systems Voice Mail (301) 373-2388 ext 2151
43865 Airport View Drive Fax (301) 373-2398
Hollywood, MD 20636 Email bruce(dot)wood(at)ngc(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-10-29 19:41:10 | Re: PREPARE statement example error. |
Previous Message | Michael Fuhr | 2004-10-28 23:21:52 | Re: Turning a subselect into an array |