trigger en postgres con err
Publicado por ger. (1 intervención) el 24/02/2015 16:05:25
tengo el siguiente codigo trigger en postgres 9.2
pero me sale el siguiente error al insertar una nueva fila
ERROR: la ejecución alcanzó el fin del procedimiento disparador sin encontrar RETURN
CONTEXT: función PL/pgSQL sp_incremental()
********** Error **********
ERROR: la ejecución alcanzó el fin del procedimiento disparador sin encontrar RETURN
SQL state: 2F005
Context: función PL/pgSQL sp_incremental()
llevo varios dias sin poder identificar que RETURN no se encuentra... vale aclarar que postgres no conozco mucho... de hecho este sp lo copie de MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
CREATE OR REPLACE FUNCTION sp_incremental () RETURNS TRIGGER AS
$BODY$
DECLARE
ultimocodigo character varying(100);
parteTexto character varying(100);
parteNumerica character varying(100);
longitudNumerica int;
codigoNumerico character varying(100);
codigo character varying(100);
BEGIN
ultimocodigo := (select max(codigousuarioamigo) from TUsuarioAmigo);
if ultimocodigo is null then
ultimocodigo := 'USUARIOX0000000';
end if;
parteTexto := substr(ultimocodigo, 1, 8);
parteNumerica := substr(ultimocodigo, 9, 7)|| 1 ;
longitudNumerica := (select length(parteNumerica)-6);
codigoNumerico := concat(repeat('0', longitudNumerica), parteNumerica);
codigo := concat(parteTexto, codigoNumerico);
NEW.codigoUsuario := (select codigo);
EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'SQL ERROR: %', SQLERRM;
END
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER trggBeforeInsertTUsuario
BEFORE INSERT ON TUsuario
FOR EACH ROW
EXECUTE PROCEDURE sp_incremental();
pero me sale el siguiente error al insertar una nueva fila
ERROR: la ejecución alcanzó el fin del procedimiento disparador sin encontrar RETURN
CONTEXT: función PL/pgSQL sp_incremental()
********** Error **********
ERROR: la ejecución alcanzó el fin del procedimiento disparador sin encontrar RETURN
SQL state: 2F005
Context: función PL/pgSQL sp_incremental()
llevo varios dias sin poder identificar que RETURN no se encuentra... vale aclarar que postgres no conozco mucho... de hecho este sp lo copie de MySQL
Valora esta pregunta


0