Re: Error pl : missing FROM-clause entry for table

From: marcelo Cortez <jmdc_marcelo(at)yahoo(dot)com(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org, Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
Subject: Re: Error pl : missing FROM-clause entry for table
Date: 2009-02-13 14:17:27
Message-ID: 993686.8301.qm@web32001.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola conrado,gente

--- El vie 13-feb-09, Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar> escribió:

> De: Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>
> Asunto: [pgsql-es-ayuda] Error pl : missing FROM-clause entry for table
> Para: pgsql-es-ayuda(at)postgresql(dot)org
> Fecha: viernes, 13 de febrero de 2009, 11:02 am
> Gente, buenos días.
> Tengo una function que me está arrojando este error:
>
> NOTICE: 2º Alumno: 1127 Ano: 2009 Mes: 04 Cuota: CUO
> CONTEXT: PL/pgSQL function "recibos_gen01" line
> 31 at assignment
> NOTICE: pasa 0: 200904
> CONTEXT: PL/pgSQL function "recibos_gen02" line
> 21 at assignment
> PL/pgSQL function "recibos_gen01" line 31 at
> assignment
> NOTICE: pasa 00: 1127
> CONTEXT: PL/pgSQL function "recibos_gen02" line
> 21 at assignment
> PL/pgSQL function "recibos_gen01" line 31 at
> assignment
> NOTICE: pasa 000: N
> CONTEXT: PL/pgSQL function "recibos_gen02" line
> 21 at assignment
> PL/pgSQL function "recibos_gen01" line 31 at
> assignment
> ERROR: missing FROM-clause entry for table
> "reg_alumnos"
> LINE 1: SELECT
> TO_CHAR(reg_alumnos.fec_ingreso,'YYYYMM')
> ^
> QUERY: SELECT
> TO_CHAR(reg_alumnos.fec_ingreso,'YYYYMM')
> CONTEXT: PL/pgSQL function "recibos_gen03" line
> 193 at RAISE
> PL/pgSQL function "recibos_gen02" line 21 at
> assignment
> PL/pgSQL function "recibos_gen01" line 31 at
> assignment
>
> ********** Error **********
>
> ERROR: missing FROM-clause entry for table
> "reg_alumnos"
> SQL state: 42P01
> Context: PL/pgSQL function "recibos_gen03" line
> 193 at RAISE
> PL/pgSQL function "recibos_gen02" line 21 at
> assignment
> PL/pgSQL function "recibos_gen01" line 31 at
> assignment
>
> Tengo el acceso a una tabla donde asigno la fila a una
> variable del rowtype de esta tabla, luego, cuando leo el
> campo fec_ingreso, me arroja el error de arriba.
> El registro tiene datos, en los raise notices estan los
> datos, pero cuando quiero hacer RAISE NOTICE 'error:
> %', TO_CHAR(reg_alumnos.fec_ingreso,'YYYYMM');
> salta el error.
>
> Tabla:
>
> CREATE TABLE alumnos_generacion
> (
> cod_alumno numeric NOT NULL,
> orden integer NOT NULL,
> fec_equipo timestamp without time zone NOT NULL,
> cod_usr character varying(8) NOT NULL,
> fec_ingreso date NOT NULL,
> fec_baja date,
> nivel numeric NOT NULL,
> mca_egresado character varying(1) NOT NULL,
> mca_egresado_anio_siguiente character varying(1) NOT
> NULL,
> mca_hijo_maestro character varying(1) NOT NULL,
> mca_beca character varying(2) NOT NULL,
> nro_hijo numeric NOT NULL,
> nro_hijo_anio_siguiente numeric NOT NULL,
> porc_descuento numeric(10,2) NOT NULL,
> imp_descuento numeric(10,2) NOT NULL,
> observaciones text,
> CONSTRAINT pk_alumnos_generacion PRIMARY KEY (cod_alumno,
> orden)
> );
>
> Por otro lado, la function es:
>
> DECLARE
> l_ret TEXT;
> --
> c_alumno CURSOR ( p_cod_alumno NUMERIC ) IS
> SELECT a.*
> FROM alumnos_generacion a
> WHERE orden = ( SELECT MAX(orden)
> FROM alumnos_generacion
> WHERE cod_alumno = p_cod_alumno)
> AND cod_alumno = p_cod_alumno
> ;
> ..
> ..
> reg_alumno alumnos_generacion%ROWTYPE; --Datos del alumno
> ..
> ..
> ..
>
> BEGIN
> ....
> ...
> ..
>
> OPEN c_alumno ( p_cod_alumno );
> FETCH c_alumno INTO reg_alumno;
> IF NOT FOUND THEN
> CLOSE c_alumno;
> RETURN 'N|Alumno inexistente: ' || p_cod_alumno;
> END IF;
> CLOSE c_alumno;
> ..
> ...
> .
> raise notice 'pasa 0: % ', l_per_pago;
> raise notice 'pasa 00: % ', reg_alumno.cod_alumno;
> raise notice 'pasa 000: % ',
> reg_alumno.mca_egresado;
> raise notice 'pasa 1: % ',
> TO_CHAR(reg_alumnos.fec_ingreso,'YYYYMM');
>
> END;
>
> En el 4 raise se va
>
> Ven algo raro?

SEria bueno publiques entera la definicion del cursor,una cosa que me llama la atencion es que no veo la declaracion del parametro dentro del cursor sera donde estan los ... ?
qiuzas sea ese el problema no declaras bien el cursor y no puede ejecutar el from. porque el unico from que se lee entero es el del
subquery, publica toda la declaracion del cursor.
pone numero de linea y publica las lineas problematicas..
mis 2cvos.

salu2
mdc.

> Desde ya, gracias.
> Saludos,
> Conrado
>
> --
> TIP 9: visita nuestro canal de IRC #postgresql-es en
> irc.freenode.net

Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Conrado Blasetti 2009-02-13 14:21:52 RE: Error pl : missing FROM-clause entry for table
Previous Message Conrado Blasetti 2009-02-13 14:02:18 Error pl : missing FROM-clause entry for table