2009/2/3 Conrado Blasetti <conr...@mapfre.com.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 -- TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda