I have noticed that you can only pass 16 parameters to a function, I was
therefore wondering how you can do atomic inserts (such as the function
below but with more params) using pl/pgsql if you can't pass complex data
types. Is this something that transactions are not used for or is it best
done as two seperate calls in my perl scripts?
-----Original Message-----
From: pgsql-sql-owner@hub.org [mailto:pgsql-sql-owner@hub.org]On Behalf
Of Yury Don
Sent: 18 August 2000 15:07
To: pgsql-sql@postgresql.org
Subject: Re: [SQL] sequences in functions
Hello Graham,
Friday, August 18, 2000, 6:24:15 PM, you wrote:
GV> I am having problems referencing sequeces in a function, I think because
of
GV> the '' characters. The function I am creating is a follows: -
GV> CREATE FUNCTION InsertClient ( varchar, varchar, varchar, varchar,
varchar,
GV> varchar ) RETURNS int4 AS '
GV> DECLARE
GV> id INT;
GV> BEGIN
GV> SELECT nextval('client_seq') INTO id;
GV> INSERT INTO client (client_id, last_name, address1, country)
GV> VALUES (id, $1, $2, $3);
GV> INSERT INTO client_card (client_card_id, type, number,
expiry_date,
GV> client_id)
GV> VALUES (nextval('client_card_seq'), $4, $5, $6, id);
GV> RETURN id;
GV> END;
GV> ' LANGUAGE 'plpgsql';
GV> And the error message is
GV> ERROR: parser: parse error at or near "client_seq"
GV> EOF
GV> Is this because of the ' ' ???
You must to use two quotes:
SELECT nextval(''client_seq'') INTO id;
--
Best regards,Yury mailto:yura@vpcit.ru