Asignacion del resultado de un select para usarlo como argumenti en otro select

From: "Luis Gonzalez" <luis(dot)gonzalez(at)hct(dot)ac(dot)ae>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Asignacion del resultado de un select para usarlo como argumenti en otro select
Date: 2005-07-20 22:00:31
Message-ID: 20050720220035.5CB1352836@svr1.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Estimados

Estoy migrando una BD que tenia en M$ a postgres, y he quedado atrapado en
un procedure que converti a funcion, pero al ejecutar se cae con el error
que adjunto:

El codigo es:

CREATE OR REPLACE FUNCTION "public"."sp_resumen_netflow" (numeric) RETURNS
boolean AS
declare id_tnet alias for $1;
declare dia_hora char(16);
declare ipfw char(15);
BEGIN
select substring(nfile,char_length(nfile)-14,char_length(nfile)-14) as
dia_hora, substring(nfile, 1,char_length(nfile)-16) as ipfw
from tnetflow where (id = $1);
if not exists (select * from fecha_netflow where fecha = dia_hora
and ipfw = ipfw)
then
insert into fecha_netflow(fecha, ipfw) values (dia_hora, ipfw);
end if;
...
return 1;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

El primer select esta garantizado que se refiere solo a una fila de la tabla
ya que id es la PK, por lo tanto la idea es rescatar el valor de día_hora e
ipfw para usarlos como argumentos en otros select.

El error es
ERROR: syntax error at or near "$1" at character 74
QUERY: SELECT substring(nfile,char_length(nfile)-14,char_length(nfile)-14)
as $1 , substring(nfile, 1,char_length(nfile)-16) as $2 from tnetflow
where (id = $3 )
CONTEXT: PL/pgSQL function "sp_re

Tratando de hacer algo cambie el primer select a una variable de texto, algo
asi como

sqltext= "select
substring(nfile,char_length(nfile)-14,char_length(nfile)-14) as dia_hora,
substring(nfile, 1,char_length(nfile)-16) as ipfw from tnetflow where (id =
" !! id_tnet !! ");";
execute sqltext;

En este caso el error

ERROR: column "select
substring(nfile,char_length(nfile)-14,char_length(nfile)" does not exist
CONTEXT: SQL statement "SELECT "select
substring(nfile,char_length(nfile)-14,char_length(nfile)-14) as dia_hora,
substring(nfile, 1,char_length(nfile)-16) as

Please, me podrian ayudar a clarificar donde esta el error, o mejor aun como
traspasar los resultados del primer select a variables, para su uso
posterior.

Gracias

_____________
Luis A. González

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Pascual De Ruvo 2005-07-20 22:10:50 Re: " duda con sentencia"
Previous Message Patricio Muñoz 2005-07-20 21:49:40 Re: A Access o Excel