From: | Jairo Sánchez <jairosll(at)gmail(dot)com> |
---|---|
To: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | no existe la funcion |
Date: | 2007-03-13 20:56:47 |
Message-ID: | 59f843f50703131356m364aa96esfa6bb6d60e2bd0a9@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos,
Estoy ingresando trabajar con funciones dentro de postgresql, con
pl/sql, y aunque creo que entiendo la teoria, ando pegandome unos
trancasos.
hasta ahora he podido ya crear mi función (gracias a los que me
colaboraron con ella), pero ahora cuando trato de ejecutarla me dice
que no existe
estoy usando PGADMIN III version 1.6.2
cuando cree la función lo hice con el editor sql no con el formulario
que el trae, sin embargo me asegure de darle los permisos de ejecución
(bueno el que creo), en fin, necesito su ayuda sobre como hago que
esta función corra
CREATE OR REPLACE FUNCTION duplicado(tb text, c1 text, c2 text, c3
text, c4 text, c5 text, c6 text, c7 text, c8 text, c9 text, c10 text,
c11 text, c12 text, c13 text, c14 text)
RETURNS text AS
$BODY$
DECLARE
tabla ALIAS FOR $1;
Nedad ALIAS FOR $8;
duplicado RECORD;
BEGIN
IF tabla == 'US' THEN
SELECT consecutivo,edad INTO duplicado FROM usuarios where
( codentadm = $2 AND
tipid = $3 AND
numid = $4 AND
tipusu = $5 AND
tipafi = $6 AND
codocu = $7 AND
uniedad = $9 AND
sexo = $10 AND
coddep = $11 AND
codmun = $12 AND
zona = $13
);
IF found THEN
IF (Nedad-duplicado.edad =< 1 AND Nedad-duplicado.edad => 1) THEN
INSERT INTO errores(codentadm,coddep,codmun,tiperr,criterio,fechaval,regnum,trimanio)
VALUES('$2','$11','$12','El Registro presenta
Duplicidad','D01',date(now()),duplicado.consecutivo,'$13');
RETURN "Error";
END IF;
END IF;
END IF;
BEGIN
INSERT INTO usuarios
(codentadm,tipid,numid,tipusu,tipafi,codocu,edad,uniedad,sexo,coddep,codmun,zona,trimanio)
VALUES ('$2','$3','$4','$5','$6','$7','$8','$9','$10','$11','$12','$13','$14');
RETURN "OK";
EXCEPTION WHEN unique_violation THEN
RETURN "Se totio";
-- do nothing
END;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION duplicado(tb text, c1 text, c2 text, c3 text, c4 text,
c5 text, c6 text, c7 text, c8 text, c9 text, c10 text, c11 text, c12
text, c13 text, c14 text) OWNER TO postgres;
GRANT EXECUTE ON FUNCTION duplicado(tb text, c1 text, c2 text, c3
text, c4 text, c5 text, c6 text, c7 text, c8 text, c9 text, c10 text,
c11 text, c12 text, c13 text, c14 text) TO public;
GRANT EXECUTE ON FUNCTION duplicado(tb text, c1 text, c2 text, c3
text, c4 text, c5 text, c6 text, c7 text, c8 text, c9 text, c10 text,
c11 text, c12 text, c13 text, c14 text) TO postgres;
gracias por su colaboración.
JSLL
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2007-03-13 21:15:10 | Re: no existe la funcion |
Previous Message | Alvaro Herrera | 2007-03-13 20:11:49 | Re: Sincronizacion simultanea de datos |