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

Declaración FORALL con límite inferior y superior en la base de datos Oracle

Declaración FORALL con cláusula de límite inferior y superior

En el tutorial anterior, aprendimos que hay tres cláusulas vinculadas que podemos usar con la declaración FORALL para optimizar las consultas DML. De esas tres cláusulas enlazadas, exploraremos la primera, es decir, Límite inferior y superior en este tutorial.

¿Qué es la cláusula de límite inferior y superior de la instrucción FORALL?

Como sugiere el nombre, con la cláusula de límite inferior y superior tenemos que especificar el rango válido de números de índice consecutivos de la colección.

¿Existe alguna regla para usar la cláusula de límite inferior y superior con la instrucción FORALL?

La cláusula de límite inferior y superior solo se puede usar cuando la colección a la que hace referencia en su declaración DML es Densa . Si la colección de referencias es escasa, es posible que desee utilizar otras cláusulas vinculadas que discutiremos en futuros tutoriales.

Para que su programa se ejecute con éxito, debe asegurarse de haber seguido todas las reglas de la declaración FORALL junto con la regla mencionada anteriormente de la cláusula de límite inferior y superior. Obtenga más información sobre la declaración FORALL aquí.

Hagamos un ejemplo de instrucción FORALL con la cláusula de límite inferior y superior en la base de datos Oracle.

Pero antes de pasar al ejemplo, debemos entender una cosa; La declaración FORALL hace el mismo trabajo que la cláusula de recopilación masiva pero de manera inversa. Por ejemplo, con la recopilación masiva obtuvimos los datos de las tablas y los almacenamos en la colección, pero ahora, con la declaración FORALL, obtendremos los datos de la colección y los almacenaremos en la tabla.

En esta demostración, haremos tres cosas para comprender el concepto de instrucción FORALL con cláusula de límite inferior y superior. Estas tres cosas son:

  1. Crear una tabla.

Primero crearemos una tabla. Usaremos esta tabla para volcar los datos que obtendremos de la colección.

  1. Crear y completar la colección.

Este paso es opcional si ya tienes una colección con algunos datos. Si no me sigues, sígueme. Para la demostración, crearé y completaré una colección.

  1. Escriba la declaración FORALL.

Una vez que tenga su mesa y colección listas, escriba la declaración FORALL. Para la demostración, escribiré una instrucción FORALL que obtendrá los datos de la colección y los almacenará en la tabla. Esa también será una demostración de la instrucción FORALL con INSERT DML.

Hagamos el ejemplo de la declaración PL/SQL FORALL con límite inferior y superior.

SET SERVEROUTPUT ON;
CREATE TABLE tut_77 (
    Mul_tab    NUMBER(5)
);

Esa va a ser nuestra tabla que contendrá los datos. A continuación escribiremos el bloque PL/SQL.

DECLARE
	-- Declare the collection
    TYPE My_Array IS TABLE OF NUMBER INDEX BY PLS_INTEGER;
    col_var My_Array;
	--Declare a variable for holding the total number of records of the table
    tot_rec NUMBER;
BEGIN
    --Populate the collection
    FOR i IN 1..10 LOOP
        col_var (i) := 9*i;
    END LOOP;
    -- Write the FORALL statement.
    FORALL idx IN 1..10
        INSERT INTO tut_77 (mul_tab)
        VALUES (col_var (idx));
    --Get the total number of records from the table     
    SELECT count (*) INTO tot_rec FROM tut_77;
    DBMS_OUTPUT.PUT_LINE ('Total records inserted are '||tot_rec);
END;
/

Explicación de la sección de declaración

En la sección de declaración de este código hemos declarado un array Asociativo con el nombre “my_Array” junto con su variable de colección. También una variable extra con el nombre tot_rec de tipo de datos Número. Esta variable contendrá el número total de registros almacenados en nuestra tabla.

En el apartado de ejecución hemos realizado tres tareas. En primer lugar, usando FOR Loop, completamos nuestra colección con la tabla de multiplicar de 9. En segundo lugar, usando FORALL, tomamos los datos de la colección y los almacenamos en la tabla que creamos. En tercer lugar, al usar la variable tot_rec con la declaración SELECT-INTO, mostramos el número total de filas almacenadas en la tabla.

También hice un video sobre el mismo tema donde expliqué este código línea por línea en detalle. Te sugiero que lo compruebes.

Ese es el tutorial sobre la instrucción PL/SQL FORALL con la cláusula de límite inferior y superior en la base de datos Oracle. Espero que hayas disfrutado viendo. Por favor, asegúrese de hacer clic en Me gusta y compartir este blog con sus amigos en sus redes sociales. También puedes contactarme en mi página de Facebook.

Gracias y que tengas un gran día.