no existe la funcion

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

Responses

Browse pgsql-es-ayuda by date

  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