| 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: | Whole Thread | Raw Message | 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
| 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 |