Validar parametros entrada

From: Mario Gonzalez <gonzalemario(at)gmail(dot)com>
To: Postgresql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Validar parametros entrada
Date: 2005-12-21 14:30:06
Message-ID: 2065a6cf0512210630i70588db3u@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola, estoy haciendo una funcion que basicamente inserta un valor y
devuele el numero de secuencia, quiero validar el parametro de
entrada, que no este vacio. Lo hice de una manera que no me gusta
mucho, no es muy elegante ni optima segun yo. Lo otro seria crear un
CHECK en el atributo pero... veamos.

La tabla es muy pequeña, viendo el modo expandido:

Tabla "public.departamentos"
-[ RECORD 1 ]-+-----------------------------------------------------------------------
Columna | id_departamento
Tipo | integer
Modificadores | not null default

nextval('public.departamentos_id_departamento_seq'::text)

-[ RECORD 2 ]-+------------------------------------------------------------------------
Columna | nombre_departamento
Tipo | text
Modificadores | not null

CREATE OR REPLACE FUNCTION insert_new_depto(text) RETURNS integer AS '
DECLARE
nom_depto ALIAS FOR $1;
BEGIN
--SI no hay datos en el string nom_depto entonces devuelvo un -1
SELECT length(nom_depto) INTO TEMPORARY tmp_table;
IF tmp_table.length > 0 THEN
--Igualmente falta capturar el error si se produce una clave duplicada
--pero estoy con 7.4 y hasta donde he leido no se pueden capturar
INSERT INTO departamentos (nombre_departamento)
VALUES (nom_depto);
RETURN currval(\'departamentos_id_departamento_seq\');
END IF;

RETURN -1;
END;
'LANGUAGE 'plpgsql';

Como ya ven creo una tabla temporal para ello, se pudiera hacer algo
mas simple como un?

len := length(nom_depto);

Saludos!

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message WILLIAM PARRA 2005-12-21 14:35:40 Duda sobre PG_DUMP
Previous Message Sonda Rommel Asitimbay 2005-12-21 14:27:36 RE: COMANDO COPY