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

Cómo crear VARRAY como objeto de base de datos en Oracle Database

El alcance del VARRAY que se crea como miembro del bloque PL/SQL está limitado al bloque en el que se crea, eso significa que no podemos usar este VARRAY fuera de su bloque o incluso reutilizarlo y ese es su mayor inconveniente. Así que siga leyendo para descubrir cómo podemos superar esta desventaja de VARRAY.

Este inconveniente se puede superar fácilmente si podemos encontrar una forma de crear el VARRAY fuera del bloque PL/SQL y almacenarlo permanentemente en el esquema. Afortunadamente, podemos lograr ambos objetivos creando VARRAY como un objeto de base de datos. Eso es exactamente lo que vamos a aprender en este tutorial.

En este tutorial aprenderemos –

  • Cómo crear VARRAY como objeto de base de datos.
  • Cómo usar ese varray.
  • Cómo insertar datos en VARRAY.
  • Cómo recuperar datos en (desde) el VARRAY
  • Cómo actualizar los datos del VARRAY.

Comencemos con el primer paso.

¿Cómo crear VARRAY como objeto de base de datos?

 ACTIVAR SALIDA DEL SERVIDOR; CREAR O REEMPLAZAR TIPO dbObj_vry ES VARRAY (5) DE NÚMERO; //pre> 

El código anterior en una ejecución exitosa creará un VARRAY con el nombre dbObj_vry que tendrá un límite de tamaño de 5 elementos y su tipo de datos será NÚMERO. Este VARRAY tiene un alcance más amplio y se puede usar no solo dentro del bloque PL/SQL sino también con otros objetos de esquema.

¿Cómo usar el VARRAY creado como objeto de base de datos?

El beneficio de definir VARRAY como objeto de base de datos es que se puede hacer referencia a él desde cualquier programa que tenga permiso para usarlo. Puede usar VARRAY con tablas, registros o incluso con bloques PL/SQL.

Hagamos el ejemplo:

Ejemplo 1. ¿Cómo definir una columna de una tabla usando VARRAY?

CREATE TABLE calendar( nombre_día VARCHAR2(25), fecha_día dbObj_vry);/

En el código anterior creamos una tabla con el nombre Calendario que tiene dos columnas nombre_día y fecha_día. La primera columna puede contener datos del tipo de datos VARCHAR2, mientras que la segunda columna puede contener datos del tipo dbObj_vry, que es un VARRAY.

Información:¿Qué significa definir una columna de una tabla como tipo VARRAY?
Definir una columna de una tabla como tipo VARRAY significa que puede contener 'n' número de valores en ella. Donde 'n' es igual al límite de tamaño de ese varray. En nuestro caso, el límite de tamaño de VARRAY es 5, lo que significa que la columna 'Día Fecha' de la tabla Calendario puede contener 5 valores.

¿Cómo insertar datos en el VARRAY?

INSERT INTO calendar ( nombre_día, fecha_día ) VALORES ( 'Domingo', dbObj_vry (7, 14, 21, 28) ); 

Esta declaración de inserción DML insertará una fila en la tabla Calendario. Insertar datos en la primera columna 'Nombre del día' que es del tipo de datos varchar2 es fácil. Solo tiene que escribir los datos deseados y encerrarlos entre comillas simples. Pero no ocurre lo mismo con la segunda columna 'Fecha del día', que es del tipo VARRAY. Para insertar datos en la columna que es de tipo VARRAY, primero debe escribir el nombre de la varray y proporcionar los datos.

Además, debes asegurarte de cuatro cosas

  1. Los datos que proporcione deben estar entre paréntesis.
  2. El tipo de datos de los datos debe coincidir con el tipo de datos de los elementos de su VARRAY, que en nuestro caso es NÚMERO.
  3. La cantidad de elementos que está insertando en la columna debe ser menor o igual al límite de tamaño de VARRAY. En nuestro caso, es 5 y estamos insertando 4 elementos en la columna, lo cual está completamente bien. Pero si supongamos que inserto 6 elementos en la columna, habrá un error.
  4. Si inserta varios datos en la columna VARRAY, asegúrese de separar los elementos entre sí usando punto y coma.

¿Cómo recuperar los datos del VARRAY?

Los datos se pueden recuperar usando la instrucción SELECT. Cualquier declaración SELECT correctamente escrita hará el trabajo. Por ejemplo

SELECCIONAR * DEL calendario;

Esto recuperará todos los datos del calendario de la tabla.

En caso de que desee mostrar los datos almacenados en la columna, que contiene datos de tipo VARRAY, en un formato relacional, puede utilizar la ayuda de la expresión TABLE. Por ejemplo

SELECCIONE tab1.day_name, vry.column_value COMO "Fecha" DESDE calendario tab1, TABLE (tab1.day_date) vry;

Esta declaración SELECT le mostrará los datos de ambas columnas en un formato relacional. La expresión TABLE puede abrir la instancia de colección y representar las filas de objetos en formato relacional.

¿Cómo actualizar los datos de la columna tipo VARRAY?

Actualizar los valores de la columna de tipo VARRAY es bastante simple. El siguiente ejemplo le mostrará cómo actualizar los valores de las columnas day_date.

ACTUALIZAR calendario SET fecha_día =dbObj_vry(10,14,21,28) WHERE nombre_día ='Domingo';

Ejemplo 2. ¿Cómo usar VARRAY con bloque PL/SQL?

En el ejemplo anterior, aprendimos cómo usar VARRAY que se crea como objeto de base de datos para definir la columna de una tabla. Ahora veremos cómo usar el mismo varray dentro de un bloque PL/SQL.

DECLARAR vry_obj dbObj_vry :=dbObj_vry();COMENZAR POR i EN 1..vry_obj.LIMITE BUCLE vry_obj.EXTEND; vry_obj(i):=10*i; DBMS_OUTPUT.PUT_LINE(vry_obj(i)); FIN DEL BUCLE;FIN;/

Has visto este ejemplo en el último tutorial. No hay cambios tan grandes aquí, excepto que esta vez, en lugar de definir el VARRAY dentro del bloque, lo creamos como un objeto de base de datos independiente. Le sugiero que eche un vistazo al último tutorial donde expliqué el código anterior en detalle.

Ese es el tutorial de PL/SQL sobre cómo crear VARRAY como objeto de base de datos en Oracle. Espero que hayas disfrutado leyendo, si es así, asegúrate de compartir este blog en tus redes sociales con tus amigos. ¡Gracias y que tengas un gran día!