From: | "Conrado Blasetti" <conrado(at)mapfre(dot)com(dot)ar> |
---|---|
To: | "Silvio Quadri" <silvioq(at)gmail(dot)com> |
Cc: | "pgsql-es-ayuda" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Pasar como parametro del tipo rowtype |
Date: | 2009-02-04 11:42:13 |
Message-ID: | 76A99F19229DC440909CF1B905F8012C0769AA8A@sar001998.Mapfre.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Silvio, gracias por responder.
Pero el type no debería estar creado? Sería el type de la tabla, pero no encontré la forma de declarar la funcion
Function foo( reg alumnos_generacion%ROWTYPE ) nada
Function foo( reg alumnos_generacion%TYPE ) nada
No me acepta el %
Con respecto a no necesitar el cursor, tenes razon, pero tener los accesos
en el declare ya se me hizo costumbre.
-----Mensaje original-----
De: Silvio Quadri [mailto:silvioq(at)gmail(dot)com]
Enviado el: Miércoles, 04 de Febrero de 2009 09:29 a.m.
Para: Conrado Blasetti
CC: pgsql-es-ayuda
Asunto: Re: [pgsql-es-ayuda] Pasar como parametro del tipo rowtype
2009/2/3 Conrado Blasetti <conrado(at)mapfre(dot)com(dot)ar>:
> Gente, me encuentro un poco mareado...
>
> Tengo la siguiente funcion (resumida):
>
> DECLARE
> 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;
> BEGIN
> ...
> ...
> OPEN c_alumno ( p_cod_alumno );
> FETCH c_alumno INTO reg_alumno;
> CLOSE c_alumno;
> ...
> ...
> reg_alumno.columna1 := 1;
> reg_alumno.columna2 := 2;
> reg_alumno.columna3 := 3;
> reg_alumno.columna4 := 4;
> ...
> ...
> [1]
> ...
> ...
>
> END;
>
> [1] Aquí quiero llamar a la funcion INSERTAR y pasarle como parámetro el registro reg_alumno, como tengo que definir esta nueva function?
Hola Conrado!
Podés generarte un tipo de dato con
CREATE TYPE name AS
( attribute_name data_type [, ... ] )
Definir reg_alumno como ese tipo de dato y llamar a la nueva función.
Estaba mirando que no necesitás usar el cursor para obtener los datos ...
Con
select col1, col2, co3 into reg_alumno
from bla bla bla
es suficiente mientras te asegures que devuelve un solo registro ...
Saludos,
--
Silvio Quadri
From | Date | Subject | |
---|---|---|---|
Next Message | Silvio Quadri | 2009-02-04 12:11:17 | Re: Pasar como parametro del tipo rowtype |
Previous Message | Silvio Quadri | 2009-02-04 11:29:07 | Re: Pasar como parametro del tipo rowtype |