Hi,
I have a function, at the end I need to know if the INSERTS have run successfully or not.
Here is the function:
[code]
CREATE OR REPLACE FUNCTION "apr_insert_utilizador_ap"
(IN ppgroup_id int4,
IN ppip_address char,
IN ppusername varchar,
IN pppassword varchar,
IN ppemail varchar,
IN ppactive int4,
IN ppnome_real varchar,
IN pptelefone_pessoal varchar,
IN ppid_anunciante varchar,
OUT ppreturn_value int4
)
RETURNS int4 AS
$BODY$
DECLARE
pGROUP_ID alias for $1;
pIP_ADDRESS alias for $2;
pUSERNAME alias for $3;
pPASSWORD alias for $4;
pEMAIL alias for $5;
pACTIVE alias for $6;
pNOME_REAL alias for $7;
pTELEFONE_PESSOAL alias for $8;
pID_ANUNCIANTE alias for $9;
vID_UTILIZADOR_MAX int4;
vID_UTILIZADOR_NOVO int4;
vRETURN int4;
BEGIN
SELECT INTO vID_UTILIZADOR_MAX max(id) AS max_id FROM aau_utilizadores;
vID_UTILIZADOR_NOVO := vID_UTILIZADOR_MAX + 1;
INSERT INTO aau_utilizadores
(id, group_id, ip_address, username, password, salt, email, activation_code,
forgotten_password_code, remember_code, created_on, last_login, active)
VALUES (vID_UTILIZADOR_NOVO, pGROUP_ID, pIP_ADDRESS, pUSERNAME, pPASSWORD, null,
pEMAIL, null, null, null, NOW(), null, pACTIVE);
INSERT INTO aau_metadata
(id, user_id, nome_real, telefone_pessoal)
VALUES (vID_UTILIZADOR_NOVO, vID_UTILIZADOR_NOVO, pNOME_REAL, pTELEFONE_PESSOAL);
INSERT INTO aau_anunciantes
(user_id, id_anunciante)
VALUES (vID_UTILIZADOR_NOVO, pID_ANUNCIANTE);
vRETURN := 1;
ppreturn_value := vRETURN;
END;
$BODY$
LANGUAGE PLpgSQL
RETURNS NULL ON NULL INPUT
VOLATILE
EXTERNAL SECURITY INVOKER;
[/code]
If the INSERTS are all done the function RETURNS "1", but how can I RETURN "0" if any error occurred?
Best Regards,
André.