PREPARE statement example error. - Mailing list pgsql-docs

From Wood, Bruce
Subject PREPARE statement example error.
Date
Msg-id 727B82C682D8E8409BD807B361874F4102208FD3@xcgmd050.northgrum.com
Whole thread Raw
Responses Re: PREPARE statement example error.  (Tom Lane <tgl@sss.pgh.pa.us>)
List 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
PostgreSQL8 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.wood@ngc.com




pgsql-docs by date:

Previous
From: Ian Barwick
Date:
Subject: FAQ and Windows
Next
From: Tom Lane
Date:
Subject: Re: PREPARE statement example error.