not really.. but it is true that it can be confusing...sorry :-(
the purpose here, it is to solve my problem with a transaction inside a
function.
i need to know if there is a common return value for error in case of a SQL
statement failed.
it seems that not, so i would like to know if the rollback inside an
EXCEPTION block is the best practice.
here is an example :
> CREATE OR REPLACE FUNCTION cust_portal.sp_u_003(usrname character varying,
> firstname character varying, email character varying, nl_reg boolean,
> nl_lang character varying)
> RETURNS integer AS
> $BODY$
>
> DECLARE
>
> existing_email INTEGER := 0;
>
> BEGIN
> set search_path = cust_portal;
>
> SELECT count(*) INTO existing_email FROM users WHERE users.email =
> email;
> IF (existing_email != 0) THEN
> RETURN (-1);
> ELSE
> -- BEGIN TRANSACTION;
> INSERT INTO cust_portal.users VALUES
> (
> nextval('users_usr_id_seq'),
> usrname,
> firstname,
> email,
> nlreg,
> nl_lang
> );
>
> DELETE FROM cust_portal.tmp_newsletterreg WHERE
> tmp_newsletterreg.email = email;
>
> COMMIT;
> RETURN(0);
>
> EXCEPTION
> ROLLBACK;
> RETURN(-2);
>
> END IF;
> END;
>
moreover such code generates an error :
On Thu, Mar 27, 2008 at 10:55 AM, Craig Ringer <[EMAIL PROTECTED]>
wrote:
> Alain Roger wrote:
> > sorry... under pl/pgsql as stored procedure
>
> Then this question was already asked and answered less than a week ago
> on this mailing list.
>
> By you, with almost exactly the same subject line.
>
> Forgive my confusion, but why are you asking the same question again?
> What's changed since last time? What else do you need to know?
>
> --
> Craig Ringer
>
--
Alain
------------------------------------
Windows XP SP2
PostgreSQL 8.2.4 / MS SQL server 2005
Apache 2.2.4
PHP 5.2.4
C# 2005-2008