From: | "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar> |
---|---|
To: | "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar>, <jmdc_marcelo(at)yahoo(dot)com(dot)ar>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Error pl : missing FROM-clause entry for table |
Date: | 2009-02-13 14:32:03 |
Message-ID: | 76A99F19229DC440909CF1B905F8012C077ABADC@sar001998.Mapfre.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
No lo puedo creer!!!
Perdon, Perdon Perdon!!!
La variable es reg_alumno: cuando lo uso le puse "S". reg_alumnoSSSSSS
Sory
Saludos,
-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org] En nombre de Conrado Blasetti
Enviado el: Viernes, 13 de Febrero de 2009 12:22 p.m.
Para: jmdc_marcelo(at)yahoo(dot)com(dot)ar; pgsql-es-ayuda(at)postgresql(dot)org
Asunto: RE: [pgsql-es-ayuda] Error pl : missing FROM-clause entry for table
Marcelo, gracias por responder.
El cursor está definido, el parámetro es p_cod_alumno NUMERIC, o sea: c_alumno CURSOR ( p_cod_alumno NUMERIC ) IS
El cursor es c_alumno y es abierto en OPEN c_alumno al cual le paso el parámetro de entrada a la funcion. Esto funciona, fijate los raise, funcionan salvo cuando quiero usar reg_alumno.fec_ingreso.
En los ... trabajo otros valores del mismo registro sin problema.
Por ahí, no entendí tu respuesta.
-----Mensaje original-----
De: marcelo Cortez [mailto:jmdc_marcelo(at)yahoo(dot)com(dot)ar]
Enviado el: Viernes, 13 de Febrero de 2009 12:17 p.m.
Para: pgsql-es-ayuda(at)postgresql(dot)org; Conrado Blasetti
Asunto: Re: [pgsql-es-ayuda] Error pl : missing FROM-clause entry for table
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/
--
TIP 4: No hagas 'kill -9' a postmaster
From | Date | Subject | |
---|---|---|---|
Next Message | Silvio Quadri | 2009-02-13 14:35:01 | Re: High Load Average |
Previous Message | Conrado Blasetti | 2009-02-13 14:21:52 | RE: Error pl : missing FROM-clause entry for table |