RE: Pasar como parametro del tipo rowtype

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

Responses

Browse pgsql-es-ayuda by date

  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