Re: Funciones con Pl/pgsql

From: Jaime Casanova <systemguards(at)yahoo(dot)com>
To: Leonardo Boet Sánchez <boet(at)gtm(dot)tel(dot)etecsa(dot)cu>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Funciones con Pl/pgsql
Date: 2004-12-16 05:38:17
Message-ID: 20041216053817.51577.qmail@web50002.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- Leonardo Boet Sánchez <boet(at)gtm(dot)tel(dot)etecsa(dot)cu>
escribió:
> Estoy trabajando con el pgadmin3 y entre los tipos
> que puede devolver una función es el void, ¿esto
> puede ser así?, aquí les mando el código:
>
> CREATE OR REPLACE FUNCTION test("varchar")
> RETURNS void AS
> 'insert into pais(pais) values($1)'
> LANGUAGE 'plpgsql' VOLATILE;
> ALTER FUNCTION test("varchar") OWNER TO postgres;
>
> ¿¿Es esto correcto??, miren el error que devuelve
> esto: ERROR: 42804: function "test" in FROM has
> unsupported return type
>

Parece que hay una confusion aqui, que la han repetido
varias personas.

Aclaremos:

En postgres existe un lenguaje sql con el que pueden
crear funciones para
ejecutar sentencias sql solamente, he aqui un ejemplo.

CREATE OR REPLACE FUNCTION test_sql(int2, char(2),
varchar) RETURNS void AS '
insert into seg_m_estado values ($1, $2, $3); '
LANGUAGE 'sql';

Existe ademas otro lenguaje llamado plgsql con el que
se pueden ejecutar
sentencias sql, pero tambien se pueden definir
variables, ejecutar lazos
(loops) y otras cosas.

CREATE OR REPLACE FUNCTION test_pgsql(int2, char(2),
varchar) RETURNS void AS '
declare
entidad alias for $1; -- esto solo lo hago para darte
una idea de
codigo char(2); -- lo que se puede hacer
begin
codigo := $2;

insert into seg_m_estado values (entidad, codigo,
$3);
return;
end;'
LANGUAGE 'plpgsql';

Tu funcion la estas creando como una funcion 'sql'
pero le estas diciendo
que usa language 'plpgsql'

Atentamente,
Jaime Casanova

PD: Hay mas lenguajes que funcionan en postgres pero
la confusion es solo entre estos dos.

_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2004-12-16 07:42:20 Acentos en postgres
Previous Message Leonardo Boet Sánchez 2004-12-15 22:51:08 Funciones con Pl/pgsql