jueves, 12 de febrero de 2015

Registros PL/SQL


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