Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1-2
Introducción (II)
1-3
Registros (Record)
1-4
Definición de un registro (I)
Sintaxis
TYPE nombre_registro IS RECORD
(declaración_campo[,declaración_campo]…);
El atributo %ROWTYPE se utiliza para declarar un registro que puede contener una
fila completa de una tabla o vista.
1-5
Definición de un registro (II)
Ejemplo 1
DECLARE
TYPE registro_estudiante is RECORD
( codigo NUMBER,
nombre1 VARCHAR2(50),
nombre2 nombre1%TYPE,
apellido1 nombre1%TYPE,
promedio NUMBER(2,1) NOT NULL := 0,
programa_academico PROGRAMA%ROWTYPE
);
estudiante_actual registro_estudiante;
BEGIN
estudiante_actual.codigo := 100;
estudiante_actual.nombre1 := 'Mario';
estudiante_actual.apellido1 := 'Perez';
--Se asigna toda la fila de la tabla Programa con Id = 1 (Si no existe
ocurre una excepción)
SELECT * INTO estudiante_actual.programa_academico FROM PROGRAMA WHERE
pro_id = 1;
dbms_output.put_line('Estudiante ' || estudiante_actual.nombre1 || ' con
promedio ' || estudiante_actual.promedio);
END;
1-6
Definición de un registro (III)
Ejemplo 2
SET SERVEROUTPUT ON;
DECLARE
TYPE registro_estudiante is RECORD
(
codigo NUMBER,
nombre VARCHAR2(50)
);
estudiante_actual registro_estudiante;
BEGIN
SELECT est_codigo, est_nombre1 INTO estudiante_actual FROM ESTUDIANTE
WHERE est_codigo = 101;
dbms_output.put_line('Estudiante ' || estudiante_actual.nombre || '
tiene codigo ' || estudiante_actual.codigo);
END;
1-7
Insertar usando un registro
Ejemplo
DECLARE
estudiante_nuevo ESTUDIANTE%ROWTYPE;
BEGIN
estudiante_nuevo.EST_CODIGO := 101;
estudiante_nuevo.EST_NOMBRE1 := 'Sandra';
estudiante_nuevo.EST_APELLIDO1 := 'Orozco';
estudiante_nuevo.EST_PROGRAMA := 1;
INSERT INTO ESTUDIANTE VALUES estudiante_nuevo;
END ;
1-8
Actualizar usando un registro
Ejemplo
DECLARE
estudiante_actualizar ESTUDIANTE%ROWTYPE;
est_id number := 101;
BEGIN
SELECT * INTO estudiante_actualizar FROM ESTUDIANTE
WHERE est_codigo = est_id;
estudiante_actualizar.EST_APELLIDO2 := 'Ortiz';
UPDATE ESTUDIANTE SET ROW = estudiante_actualizar
WHERE est_codigo = est_id;
END ;
1-9
Comparación de registros
1-10
Ejercicio
• Cree un bloque anónimo que defina un registro para almacenar todos los
datos de un estudiante. Pida el código de un estudiante por teclado e
imprima en pantalla el código, nombre y promedio.
1-11
Bibliografía
1-12