Re: Funcion compleja

From: Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>
To: pgsql-es postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Cc: Alvaro Herrera <alvherre(at)surnet(dot)cl>
Subject: Re: Funcion compleja
Date: 2005-06-17 11:36:40
Message-ID: e9b17cde050617043638e8bd0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El problema esta creo yo en la asignacion del resultado a la variable padre,
por eso la declare ahora como tipo:

padre public.lquery;

al depurar la funcion me da:

reca =(sq:92089;) , lo cual es en verdad el primer registro.

Pero al querer asignar el resultado a la variable padre y concatenarla con
los caracteres
|| '*.*'

Me origina el error

Gracias

El día 17/06/05, Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>
escribió:
>
> OK. Alvaro gracias, hice lo que me recomendastes y ahora me da otro error:
>
> Esa es la funcion:
>
> DECLARE
> rs ty_depreciacion%rowtype;
> e alias for $1;
> f alias for $2;
> recA RECORD;
> padre varchar;
> BEGIN
> FOR recA IN
> SELECT DISTINCT min(contabilidad.refpahi.sq_serialcolumn::integer) As sq
> FROM
> contabilidad.refpahi
> WHERE
> id_estado= 'SA' AND
> co_empresa= e AND
> co_filial= f
> GROUP BY contabilidad.refpahi.nu_activo_fijo,
> contabilidad.refpahi.nu_parent
> ORDER BY sq
> LOOP
>
> padre := ' ' recA.sq ' ' || '*.*'; -------- aca me da el siguiente error :
> ERROR: error de sintaxis en o cerca de «$1» en carácter 13
> -------- padre deberia quedar de esta forma:
> -------- Si recA.sq, devuelve 123456, entonces padre debe ser '123456*.*'
>
> SELECT
> p.nu_activo_fijo,
> a.nb_activo AS nb_act,
> p.nu_componente,
> b.nb_activo AS nb_comp,
> c.va_cah,
> f.fe_adquisicion,
> f.fe_capitalizacion,
> f.fe_entoper,
> d.nu_ano ,
> d.nu_mes,
> d.va_dm,
> d.va_da,
> c.ca_vurm,
> d.va_vrm,
> d.va_vneto,
> d.nu_comprobante,
> d.nu_documento
> FROM contabilidad.refpahi p,
> activos a,
> activos b,
> contabilidad.samadep c,
> public.samafeac f,
> contabilidad.sahidep d
> WHERE
> p.id_estado ='SA' AND
> p.co_empresa = e AND
> p.co_filial = f AND
> path ~ padre AND
> a.nu_activo_fijo = p.nu_activo_fijo AND
> b.nu_activo_fijo = p.nu_componente AND
> c.co_empresa = p.co_empresa AND
> c.co_filial = p.co_filial AND
> c.co_codigo = p.nu_componente AND
> f.co_empresa = p.co_empresa AND
> f.co_filial = p.co_filial AND
> f.nu_activo_fijo = p.nu_componente AND
> d.co_empresa = p.co_empresa AND
> d.co_filial = p.co_filial AND
> d.co_codigo = p.nu_componente AND
> d.nu_ano =2004 AND d.nu_mes =01
> ORDER BY
> path asc, nu_ano desc, nu_mes asc;
> END LOOP;
>
> RETURN NEXT rs;
> END;
>
>
> Gracias
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> El día 16/06/05, Alvaro Herrera <alvherre(at)surnet(dot)cl> escribió:
> >
> > On Thu, Jun 16, 2005 at 08:52:21PM -0400, Mario Soto Cordones -
> > Venezuela wrote:
> >
> > > FOR recA IN
> > > select distinct min(contabilidad.refpahi.sq_serialcolumn::integer) As
> > sq
> > > from contabilidad.refpahi where id_estado='SA' and co_empresa=1 and
> > > co_filial=2
> > > group by contabilidad.refpahi.nu_activo_fijo,
> > contabilidad.refpahi.nu_parent
> > > order by sq;
> > > LOOP
> >
> > Sobra el ; despues de "sq" y antes de "loop".
> >
> > Una recomendacion -- poner consultas tan grandes sin ninguna ayuda
> > visual para depurarlas es pesima idea. Te recomiendo aprovechar la
> > indentacion para, por ej., dejar las palabras clave principales al
> > principio de la linea (SELECT, FROM, WHERE, GROUP BY, ORDER BY, etc).
> > Ademas de eso, ponlas con mayusculas para que sean inmediatamente
> > visibles.
> >
> > Te aseguro que mejora muchisimo la velocidad con que puedes aprehender
> > un trozo de codigo despues de un par de horas de que lo has escrito.
> >
> > --
> > Alvaro Herrera (<alvherre[a]surnet.cl>)
> > "Cada quien es cada cual y baja las escaleras como quiere" (JMSerrat)
> >
>
>
>
> --
> cordialmente,
>
> Ing. Mario Soto Cordones

--
cordialmente,

Ing. Mario Soto Cordones

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Soto Cordones - Venezuela 2005-06-17 12:05:18 Re: Funcion compleja
Previous Message Julio Ríos 2005-06-17 08:16:04 Diversas funcionallidades en postgres