Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OBJETIVOS:
Construir bloques anónimos en los cuales se utilizan variables con el atributo %TYPE y variables
RECORD.
Es típico en el trabajo con BD el declarar registros con el mismo formato que las filas de las tablas.
Si se conoce la estructura de las tablas se crea un registro con ese formato, si no se utiliza el
operador %ROWTYPE, similar a %TYPE. El registro tendrá los mismos campos y del mismo tipo
que la tupla de la tabla correspondiente de la BD.
Los campos del registro toman sus nombres y tipos de datos de las columnas de la vista o
tabla.
Ventajas de %ROWTYPE
El número y los tipos de datos de las columnas de la tabla pueden no ser conocidos.
Simplifica la programación al no tener que definir explícitamente los campos y tipos del
registro.
Es útil para realizar recuperaciones de filas con la sentencia SELECT:
DECLARE
reg_cliente clientes%ROWTYPE;
BEGIN
SELECT *
INTO reg_cliente FROM clientes
WHERE codigo = 1 ;
END;
Variable tipo compuesto RECORD
Se les conoce como Registros PL/SQL o Record, se utilizan para tratar datos relacionados pero
distintos como unidades lógicas. Un registro PL/SQL puede tener variables de diferentes tipos. Por
ejemplo, puede definir un registro para incluir los detalles de empleado. Esto implica el
almacenamiento del número de empleado como NUMBER, el nombre y apellido como VARCHAR2,
etc. Al crear un registro para almacenar los detalles de empleado, se crea una unidad colectiva lógica.
Esto facilita la manipulación de los datos en cuanto al acceso, modificación, relacionarlos y
transportarlos.
Se utilizan los registros PL/SQL cuando desee almacenar valores de diferentes tipos de dato que
están relacionados de forma lógica. Si crea un registro para incluir los detalles de empleado,
identifique que todos los valores almacenados están relacionados porque proporcionan información
acerca de un empleado determinado.
TENGA EN CUENTA
Cada registro definido puede tener tantos campos como sean necesarios.
Se pueden asignar valores iniciales a los registros y éstos se pueden definir como NOT NULL.
Los campos sin valores iniciales se inicializan en NULL.
Puede definir los tipos RECORD y declarar los registros definidos por el usuario en la parte
declarativa de cualquier bloque, subprograma o paquete.
SINTAXIS
Los tipos compuestos son definidos por el usuario, y para poder utilizarlos se requieren tres pasos: la
definición, la declaración de la variable y acceso a su contenido.
2
TYPE tipo_registro IS RECORD (
Campo1 Tipo1 [NOT NULL,
Campo2 Tipo2 [NOT NULL] [:= expr2],
Campo3 Tipo3 [NOT NULL] [:= expr3],
…… … .. …… ……
Campo(n) Tipo(n) [NOT NULL] [:= expr(n)]);
Definición del record para almacenar los datos de la cita y del médico
TYPE reg_articulo IS RECORD
(
v_num_ide clientes.codigo%TYPE,
v_nombres clientes.nombre%TYPE,
);
DECLARACION DE VARIABLE
La declaración de la variable involucra asignarle nombre a la variable y definirla del tipo record
definido: v_nombre reg_nombre.
DONDE
v_info_art identificador de la variable
reg_articulo identificador del record definido previamente
ACCESO A SU CONTENIDO
Acceder al contenido del record involucra una instrucción que consta de tres partes: el nombre de la
variable record seguida de un punto y el nombre del campo al cual se desea acceder.
3
EJEMPLO 1
DECLARE
TYPE reg_articulo IS RECORD
( v_num_ide clientes.codigo%TYPE,
v_nombres clientes.nombre%TYPE
);
v_info_art reg_articulo;
BEGIN
END;
EJEMPLO 2