sql >> Base de Datos >  >> RDS >> Oracle

Introducción a PL/SQL VARRAY en Oracle Database

Los VARRAY se lanzaron en Oracle 8i en 1998 como una versión modificada de la colección de tipos de tablas anidadas que hemos discutido en los blogs anteriores.

Lectura sugerida:Cómo crear una tabla anidada –

  • Como elemento de bloque PL/SQL
  • Como objeto de base de datos
  • Uso del tipo de datos definido por el usuario

Además ahora puedes poner a prueba tus conocimientos sobre el tema realizando un test aquí.

VARRAY es un tema importante porque se ve que generalmente siempre hay una pregunta al respecto en el examen de certificación. Para minimizar cualquier confusión, primero echaremos un breve vistazo a la introducción de la colección VARRAY.

VARRAYs, que es un acrónimo de Matrices de tamaño variable se introdujeron en Oracle 8i en 1998 como un formato modificado de tablas anidadas. Las principales modificaciones se pueden ver en la orientación del almacenamiento. No hay cambios notables en la implementación, pero su orientación de almacenamiento es completamente diferente en comparación con las tablas anidadas.

A diferencia de la tabla anidada que requiere una tabla externa para su almacenamiento, VARRAY se almacenan en línea con su registro principal como valor sin formato en la tabla principal. Significa que ya no es necesaria la cláusula STORE AS. Oh, qué alivio, sin E/S innecesarias y, además, un mayor rendimiento.

¿Podemos guardar y reutilizar VARRAY?

Al igual que las tablas anidadas, los VARRAY son de tipo persistente de colección, lo que significa que se pueden crear como objetos de base de datos que se pueden guardar para su uso posterior. Los VARRAY también se pueden crear como miembros de bloques PL/SQL. El alcance de VARRAY que se declara dentro de un bloque PL/SQL se limita al bloque en el que se crea.

¿Los VARRAY están acotados o no acotados?

A diferencia de la tabla anidada, los VARRAY son una forma de colección limitada. Por acotado quiero decir, tienes que decidir cuántos elementos quieres almacenar en tu colección mientras la declaras. Mientras que en la tabla anidada, que es un tipo de colección ilimitado, no hay un límite superior en la cantidad de elementos.

Mecanismo de almacenamiento de VARRAYs

El mecanismo de almacenamiento de VARRAY es la mayor diferencia que las convierte en una opción superior a las tablas anidadas. A diferencia de las tablas anidadas que requieren una tabla externa para su almacenamiento, los VARRAY se almacenan en línea con su registro principal como valor sin formato en la tabla principal. Esto significa que no hay ningún requisito de la cláusula STORE AS ni de una tabla de almacenamiento independiente.

El almacenamiento en línea de VARRAY ayuda a reducir las entradas/salidas (E/S) del disco, lo que hace que el rendimiento de VARRAY sea más eficiente que la tabla anidada. Pero cuando los VARRAY superan los 4K de datos, Oracle sigue un mecanismo de almacenamiento fuera de línea y almacena los VARRAY como un LOB.

Sintaxis para crear VARRAY PL/SQL

En esta sección veremos la sintaxis para crear VARRAY como

  • Objeto de base de datos y
  • Miembro del Bloque PL/SQL.

Puede dirigirse al video sobre el mismo tema en mi canal de YouTube, donde expliqué ambas sintaxis en detalle.

VARRAY como objeto de base de datos

CREATE [OR REPLACE] TYPE type_name
IS {VARRAY | VARYING ARRAY} (size_limit) OF element_type;

VARRAY como miembro del Bloque PL/SQL

DECLARE
TYPE type_name IS {VARRAY | VARYING ARRAY} (size_limit) OF
element_type;

Las dos sintaxis anteriores son las mismas que las de la tabla anidada, excepto que aquí tenemos una cláusula adicional que es Size_Limit. El límite de tamaño es un número entero que indicará el número máximo de elementos que puede contener su VARRAY.

Recuerde siempre que, de forma similar a la tabla anidada, podemos declarar VARRAY solo en la sección de declaración del bloque PL/SQL.

¿Cómo modificar el límite de tamaño de la colección de tipo VARRAYs?

El límite de tamaño de un VARRAY se puede modificar mediante la instrucción ALTER TYPE DDL.

ALTER TYPE type_name MODIFY LIMIT new-size-limit [INVALIDATE | CASCADE]

Dónde:

TIPO DE ALTERACIÓN es una frase reservada que le indica al compilador qué acción DDL desea realizar.

ESCRIBA NOMBRE es el nombre del tipo que desea modificar.

MODIFICAR LÍMITE es una cláusula que informa al compilador que el usuario desea modificar el límite de tamaño.

NUEVO LÍMITE DE TAMAÑO es un número entero que será el nuevo límite de tamaño de su VARRAY.

INVALIDAR cláusula es una cláusula opcional que invalidará todos los objetos dependientes sin ningún mecanismo de verificación.

cláusula CASCADE nuevamente es una cláusula opcional que propagará los cambios a los tipos y tablas dependientes.

 

¿Cómo eliminar una colección de tipo VARRAY?

Para eliminar un tipo VARRAY, puede obtener ayuda de la instrucción DROP DDL.

DROP TYPE type_name [FORCE];

Dónde:

Tipo de entrega

Es una instrucción DDL mediante la cual puede eliminar cualquier tipo creado en su base de datos.

Escriba el nombre

Nombre de tipo es el nombre de un tipo ya creado que desea descartar.

Fuerza

Especifique FORCE para descartar el tipo incluso si tiene objetos de base de datos dependientes. Oracle Database marca NO UTILIZADO todas las columnas que dependen del tipo que se va a descartar, y esas columnas se vuelven inaccesibles. Recuerde que esta operación no es recuperable y podría hacer que los datos de las tablas o columnas dependientes se vuelvan inaccesibles.

Espero que hayas aprendido algo nuevo. Ahora puedes poner a prueba tus conocimientos sobre el tema haciendo un test aquí. Ayúdanos a crecer compartiendo este blog en tus redes sociales. De esta manera también puedes ayudar a tus amigos en el aprendizaje. ¡Gracias y que tengas un gran día!