Re: ERROR: SELECT query has no destination for result data

From: Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>
To: Juan Pablo GO <mozstyle2002(at)gmx(dot)net>
Cc: "Jaime N(dot) Charles Treviño" <jamcha(at)sinc(dot)com(dot)mx>, pgsql-es postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: ERROR: SELECT query has no destination for result data
Date: 2005-06-17 16:55:48
Message-ID: e9b17cde050617095544a6ad30@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Me parace interesante y util tambien

Gracias a todos
y Saludos

El 17/06/05, Juan Pablo GO<mozstyle2002(at)gmx(dot)net> escribió:
> Otra forma seria hacer algo como esto:
>
> CREATE TYPE tMiTipoDeDatos AS (nMiCpo1 float8, nMiCpo2 float8,
> bMiEstado bool); ALTER TYPE tMiTipoDeDatos OWNER TO postgres; ... CREATE OR
> REPLACE FUNCTION fMiFuncion(MiParm1 int4, MiParm2 int4, MiParm3 varchar)
> RETURNS SETOF tMiTipoDeDatos AS $BODY$ Declare rMiRegistro RECORD; begin
> Select into rMiRegistro cpo1 ,cpo2 ,true as
> Estado from MiEsquema.MiTabla where cpo1 = MiParam1 and
> cpo2 = MiParam2 and cpo3 <= MiParam3 order by cpoN ;
> if not Found then rMiRegistro.bMiEstado := false; end if;
> return next rMiRegistro; // Retorna los registros.... return; // OJO
> con este return que que hace retornar de forma correcta a la funcin. End;
> $BODY$ LANGUAGE 'plpgsql' VOLATILE; ALTER FUNCTION fMiFuncion(int4, int4,
> "varchar") OWNER TO postgres; ... //----------------------------- Mi funcion
> principal, o trigger si quieres.. ... Declare rMiRegistroLocal as RECORD;
> ... ... begin Select into rMiRegistroLocal * from fMiFuncion(nVariable1
> ,nVariable2 ,'Otro dato') ; if rMiRegistroLocal.bMiEstado then
> ....
> // lo que tengas que hacer, etc.
> end if; end
> Salu2
> Juan Pablo GO.
>
>
>
>
> Mario Soto Cordones - Venezuela wrote:
> Eso era, gracias , ahora si me retorna los valores
>
> Muchas gracias y un cordial saludo
>
> Mario Soto
>
> El 17/06/05, Jaime N. Charles Treviño<jamcha(at)sinc(dot)com(dot)mx> escribió:
>
>
> Creo ver algunos detalles:
>
> ...
> RAISE NOTICE 'Procesando Datos, espere porfavor';
>
> SELECT --> ¿Aquí no debería ser: SELECT INTO rs
>
> p.nu_activo_fijo,
> ...
>
> ... Antes del (1) END LOOP retornas rs, y fuera (2) el RETURN solo
> RETURN next rs; --> Aqui (1)
> END LOOP;
> RETURN; --> Aqui (2)
> END;
> ...
>
> El vie, 17-06-2005 a las 09:10, Mario Soto Cordones - Venezuela
> escribió:
>
>
> Hola Lista, tengo el siguiente tipo y funcion respectivamente:
>
> CREATE TYPE "public"."ty_depreciacion" AS (
> "nu_activo_fijo" VARCHAR,
> "nb_activo" VARCHAR,
> "nu_componente" VARCHAR,
> "nb_componente" VARCHAR,
> "va_cah" NUMERIC,
> "fe_adquisicion" DATE,
> "fe_capitalizacion" DATE,
> "fe_entoper" DATE,
> "nu_ano" INTEGER,
> "nu_mes" INTEGER,
> "va_dm" NUMERIC,
> "va_da" NUMERIC,
> "ca_vurm" NUMERIC,
> "va_vrm" NUMERIC,
> "va_vneto" NUMERIC,
> "nu_comprobante" VARCHAR,
> "nu_documento" INTEGER
> );
>
> CREATE OR REPLACE FUNCTION "public"."compleja" (emp integer, fil
> integer) RETURNS SETOF "public"."ty_depreciacion" AS
> $body$
> DECLARE
> rs ty_depreciacion%rowtype;
> empresa alias for $1;
> filial alias for $2;
> recA RECORD;
> padre public.lquery;
> BEGIN
> FOR recA IN
> SELECT DISTINCT
> min(contabilidad.refpahi.sq_serialcolumn::integer) As sq
> FROM
> contabilidad.refpahi
> WHERE
> id_estado= 'SA' AND
> co_empresa= empresa AND
> co_filial= filial
> GROUP BY contabilidad.refpahi.nu_activo_fijo,
> contabilidad.refpahi.nu_parent
> ORDER BY sq limit 20
> LOOP
>
> padre := '' || recA.sq || '*.*' || '';
>
> RAISE NOTICE 'Procesando Datos, espere porfavor';
>
> 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 = empresa AND
> p.co_filial = filial 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;
> $body$
> LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
>
>
> el ejecutar la funcion me retorna el siguiente error :
> ERROR: SELECT query has no destination for result data
>
> He depurado parte por parte la funcion y hace lo que debe hacer en los
> querys, pero no retorna nada en rs y de da el error mencionado,
>
> Alguien sabe que pueda ser
>
> Saludos y muchas gracias
>
> --
> Lic. Jaime N. Charles Treviño
> Servicios de Informática Colegiada S.A. de C.V.
> Villagómez 523 norte, centro, Monterrey, N.L.
> Tels. (81) 8375-4018, 8114-5013, 8114-5011
> http://www.sinc.com.mx
> --
> "Compartiendo objetivos...Aportando soluciones"
>
>
>
>
>
>

--
cordialmente,

Ing. Mario Soto Cordones

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Oswaldo Hernández 2005-06-17 17:38:13 Re: duda sobre function en postgress
Previous Message al979663 2005-06-17 16:30:21 Error 193 al Iniciar servidor