Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: como anidar funciones plpgsql


  • From: "Carlos Mendez" <lucas1850(at)gmail(dot)com>
  • To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
  • Cc: pgsql-es-ayuda(at)postgresql(dot)org
  • Subject: Re: como anidar funciones plpgsql
  • Date: Thu, 31 Jan 2008 09:47:47 -0400
  • Message-id: <4610af1f0801310547y5d017850v2ded16119db3012d(at)mail(dot)gmail(dot)com>

Hola,
ejecuto la sgte funcion:
 
CREATE OR REPLACE FUNCTION unirfunc()
  RETURNS integer AS
$BODY$DECLARE
consulta varchar;
result integer;
BEGIN
  --consulta:='select insertar()';
  --raise notice 'LA CONSULTA ES: %',consulta;
  --execute consulta5 into result;
  perform insertar();
  --raise notice 'el resultado es: %',result;
  RETURN 1;
END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION unirfunc() OWNER TO carlos;
 
para ejecutar la funcion voy al pgadminIII a la venta query tool y escribo:
select unirfunc(); y ejecuto
el resultado en la pestaña data output me dice 1 es decir al parecer no existe error, voy a la pestaña messages y ahi encuentro el mensaje que mencione anteriormente:
 
CONTEXTO:  SQL statement "SELECT  insertar()"
PL/pgSQL function "unirfunc" line 8 at perform
 
como en la funcion insertar() utilizo utilizo bucles, puse varios raise notice para ir testeando la funcion, por lo tanto el mensaje contexto me aparece varias veces y los notice tambien,
antes de contexto solo aparece notices he aqui un ejemplo:
 
NOTICE:  al principio bandera vale: <NULL>
CONTEXTO:  SQL statement "SELECT  insertar()"
PL/pgSQL function "unirfunc" line 8 at perform
NOTICE:  select * from alumnos where id=1  //esta consulta la escribi con raise notice
CONTEXTO:  SQL statement "SELECT  insertar()"
PL/pgSQL function "unirfunc" line 8 at perform
NOTICE:  llegamos
CONTEXTO:  SQL statement "SELECT  insertar()"
PL/pgSQL function "unirfunc" line 8 at perform
 
cuando ejecuto directamente la funcion insertar() no aparece ningun "CONTEXTO:" solo los notice que yo le puse,
 
Gracias de antemano por la ayuda,
saludos.
 
 

 
2008/1/31, Alvaro Herrera <alvherre(at)commandprompt(dot)com>:
Carlos Mendez escribió:
> Hola, gracias por responder,
>
> probe con perform, ahora sale:
>
> CONTEXTO: SQL statement "SELECT insertar()"
> PL/pgSQL function "unirfunc()" line 8 at perform
>
> y en la linea 8 creo, tengo lo sgte:
>
> perform insertar();

Que aparece antes de la linea CONTEXTO?


--
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group