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: Wed, 30 Jan 2008 22:16:15 -0400
  • Message-id: <4610af1f0801301816h3c28a40bl81b1500bc9b1c0af(at)mail(dot)gmail(dot)com>

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();
 
la funcion parece que se ejecuta correctamente, pero sin embargo sale ese aviso o advertencia lo cual quisiera saber que me quiere decir, como mencione antes la funcion toma los registros de una tabla y trata de insertarlos o actualizarlos en otra, y parece que cada vez que toma un registro para insetarlo o actualizarlo aparece el mensaje o aviso, pero la funcion no se detiene solo el mensaje aparece como en un bucle, bueno en la funcion utilizo varios bucles debe ser por eso que el mensaje se repite, para probar las funciones utilizo la consola de windows y es ahi donde veo la advertencia o aviso que se repite varias veces cuando ejecuto la funcion unirfunc();
 
Gracias de antemano por la ayuda,
saludos.

 
2008/1/30, Alvaro Herrera <alvherre(at)commandprompt(dot)com>:
Carlos Mendez escribió:

> estoy aprendiendo a realizar funciones en plpgsql, hice algunas, ahora tengo
> que ejecutarlas en cadena, es decir una a continuacion de otra, lo que se me
> ocurre es realizar otra funcion que agrupe a todas las funciones, no se si
> existe otra manera mejor de solucionarlo,
> hice la sgte funcion llamada unirfunc, no tiene parametros de entrada,
> retorna un int4, utilizo pgaccess;

pgaccess?  Estas de broma?  Ese programa lleva años muerto.  Mejor usa
pgAdmin.

> DECLARE
> consulta varchar;
> resultado integer;
> BEGIN
>   consulta:='select insertar()';
>   raise notice 'LA CONSULTA ES: %',consulta;
>   execute consulta into resultado;
>   raise notice 'el resultado es: %',resultado;
>   RETURN 1;
> END;


Prueba con

begin
       perform insertar();
       return 1;
end;

Si necesitas el resultado para algo (lo cual me parece dudoso), puedes
hacer

declare
       resultado       integer;
begin;
       select insertar() into resultado;
       raise notice 'el resultado es %', resultado;
       return 1;
end;


--
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.



Home | Main Index | Thread Index

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