Antes que nada les envio un saludo a todos y ojalá que me puedan apoyar en un problema que tengo. Les explico, antes había trabajado con PostgreSQL programando funciones y todo muy bien, pero ahora que me paso a SQL Server 2005 tengo algunas broncas. En lo que necesito que me ayuden es en lo siguiente: tengo una función programada en PL/pgSQL (Procedural Language/PostgreSQL) que sirve para insertar (si el valor del primer parámetro es 0) y actualizar (si el valor del primer parámetro es diferente de 0 y actualiza por medio de este, ya que se refiere al ID de la tabla y de no existir manda un error) que es el siguiente:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION tel.spimabipa (INTEGER, VARCHAR, VARCHAR) RETURNS text
AS $proc$
DECLARE
vid_abipa ALIAS FOR $1;
vabreva ALIAS FOR $2;
vipa ALIAS FOR $3;
vretval text;
BEGIN
IF (vid_abipa=0) THEN
INSERT INTO tel.tb_abipa (id_abipa, abreva, ipa)
VALUES (NEXTVAL('tel.seqabipa'), vabreva, vipa);
vretval:='Valores insertados con exito';
ELSE
UPDATE tel.tb_abipa
SET abreva=vabreva, ipa=vipa
WHERE id_abipa=vid_abipa;
IF NOT (FOUND) THEN
vretval:='Error: algun dato es incorrecto';
ELSE
vretval:='Valores actualizados con exito';
END IF;
END IF;
RETURN vretval;
END; $proc$
LANGUAGE 'plpgsql';
El primer problema es que no tengo ni idea como traducir la parte ALIAS FOR, esto lo que hace es meter en variables lo parámetros de la función.
Y lo segundo que que no se cuál es la equivalencia de IF NOT (FOUND) THEN.
En verdad si alguien me pudiera echar la mano les estaría muy agradecido. Y por cierto si alguien tiene problemas con PostgreSQL yo les podría ayudar en algo, ya llevo un buen tiempo trabajando con esa base de datos.