En esta publicación, doy un ejemplo para realizar una inserción en el uso de Oracle Bulk Collect y el comando FORALL. Creó una función PL SQL que tomará datos de la tabla EMP usando un cursor, luego crea una variable de matriz de tipo de ese tipo de fila de cursor y luego recopila e inserta en masa en la tabla BONUS usando FORALL.

A continuación se muestra el ejemplo:
CREATE OR REPLACE FUNCTION f_currowtype RETURN BOOLEAN IS CURSOR c_emp IS SELECT empno, ename, job, sal FROM emp; TYPE t_emp IS TABLE OF c_emp%ROWTYPE; e_rec t_emp; BEGIN OPEN c_emp; FETCH c_emp BULK COLLECT INTO e_rec; CLOSE c_emp; FORALL i IN e_rec.FIRST .. e_rec.LAST insert into bonus (empno, amount) values (e_rec(i).empno, e_rec(i).sal * 10 / 100); DBMS_OUTPUT.put_line ('Rows inserted: ' || SQL%ROWCOUNT); COMMIT; RETURN TRUE; EXCEPTION WHEN OTHERS THEN ROLLBACK; RETURN FALSE; END;
Puede ejecutarlo de la siguiente manera:
SET SERVEROUTPUT ON; BEGIN IF f_currowtype THEN DBMS_OUTPUT.put_line ('Success'); ELSE DBMS_OUTPUT.put_line ('Failed'); END IF; END;
-
¿Está Intel condenado en el espacio de la CPU del servidor?
-
Cómo conectarse a varios servidores SQL con un solo clic (grupo de servidores registrados) - SQL Server / Tutorial TSQL Parte 5
-
Carga de datos de imagen en columnas BLOB en Oracle
-
Cómo eliminar todas las restricciones predeterminadas en la base de datos de SQL Server - Tutorial de SQL Server / TSQL, parte 94