Los registros (Records) son un de tipos de datos que Oracle permite definir como un marcador de posición. Los registros son tipos de datos compuestos, lo que significa que son una combinación de diferentes tipos de datos escalares como char, varchar, número, entre otros. Cada tipos de datos escalar en el registro tiene un valor. Un registro puede ser visualizado como una fila de datos. Puede contener todo el contenido de una fila.
Creando un Registro
Para definir un
registro debe ubicarse en la parte declarativa de un bloque PL / SQL. La sintaxis
para definir el registro es la siguiente:
TYPE type_name IS RECORD
(field_declaration[, field_declaration]…);
También puede declarar opcionalmente los componentes internos de este
tipo de registro.
En la sintaxis:
identifier type_name;
field_name
{field_type | variable%TYPE
| table.column%TYPE | table%ROWTYPE}
[[NOT NULL] {:= | DEFAULT} expr]
type_name : Es el nombre del tipo de registro (Se utiliza para declarar los registros.)
field_name: Es el nombre de un campo dentro del registro
field_type: Es el tipo de datos del campo
Puede utilizar
los atributos % TYPE y % ROWTYPE. La variable expr es el field_type o un valor inicial. La restricción NOT NULL impide asignar valores nulos a
esos campos.
Estructura del Registro
Los campos de un
registro se acceden por el nombre del
registro. Para hacer referencia o inicializar un campo individual, utilice lo
siguiente:
record_name.field_name
Por ejemplo, se
hace referencia el campo job_id en el registro emp_record de la siguiente
manera:
emp_record.job_id
A continuación,
puede asignar un valor al campo de registro:
emp_record.job_id: = '5600';
En un bloque o
subprograma, los registros definidos por
el usuario se crean en instancias cuando entran al bloque o subprograma. Ellos
dejan de existir cuando se sale del bloque o subprograma.
Atributo %TYPE
El atributo %TYPE se utiliza para declarar una variable de un tipo de columna. La variable tiene el mismo tipo de datos y tamaño que la columna de la tabla. El beneficio de%TYPE es que no tiene que cambiar la variable si la columna se altera. Además, si la variable se utiliza en todos los cálculos, no necesita preocuparse acerca de su precisión.
Atributo %ROWTYPE
El atributo%ROWTYPE se utiliza para declarar un registro, que puede llevar toda una fila de una tabla o vista. Los campos en el registro toman sus nombres y tipos de datos de las columnas de la tabla o vista. El registro también puede almacenar una fila completa de datos obtenidos a partir de una variable de cursor o cursor. Normalmente se usa cuanto uno no está seguro acerca de la estructura de la tabla de base de datos.
La principal ventaja de utilizar %ROWTYPE es que simplifica el mantenimiento. Se asegura que los tipos de datos de las variables declaradas con este atributo cambian dinámicamente cuando se altera la tabla. Si una sentencia DDL cambia las columnas de una tabla, a continuación, la unidad de programa PL / SQL se invalida. Cuando se compila el programa, se reflejará automáticamente el nuevo formato de tabla. El atributo% ROWTYPE es particularmente útil cuando se desea recuperar toda una fila de una tabla. En ausencia de este atributo, se verá obligado a declarar una variable para cada una de las columnas devueltas por la sentencia select.
No hay comentarios:
Publicar un comentario