In diesem Beitrag gebe ich ein Beispiel, um eine Einfügung in die Verwendung von Oracle Bulk Collect und dem FORALL-Befehl durchzuführen. Erstellt eine PL-SQL-Funktion, die Daten aus der EMP-Tabelle mit einem Cursor übernimmt, dann eine Typ-Array-Variable dieses Cursor-Zeilentyps erstellt und sie dann mit FORALL massenhaft erfasst und in die BONUS-Tabelle einfügt.
Unten ist das Beispiel:
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;
Sie können es wie folgt ausführen:
SET SERVEROUTPUT ON; BEGIN IF f_currowtype THEN DBMS_OUTPUT.put_line ('Success'); ELSE DBMS_OUTPUT.put_line ('Failed'); END IF; END;
-
Was ist der Unterschied zwischen CHAR und VARCHAR in SQL Server - SQL Server / T-SQL-Tutorial Teil 31
-
Tutorial zu SQL Server-Tabellenpartitionierung und -partitionen
-
Entfernen eines Datenbank-E-Mail-Kontos aus einem Profil (SSMS)
-
Verwalten von Hochverfügbarkeit in PostgreSQL – Teil II:Replication Manager