Dans le billet de blog précédent, j'ai donné un exemple d'utilisation d'Oracle Bulk Collect à l'aide d'un objet de type Cursor Rowtype. Ce qui crée d'abord le curseur, puis tape l'objet de type curseur, puis ouvre le curseur, le récupère en masse, puis le traite finalement à l'aide de Forall. Mais parfois, vous devrez peut-être préparer certaines données une seule fois avec un bloc PLSQL anonyme temporaire, et vous ne voulez pas écrire trop de code pour effectuer cette tâche. Pour ce type de scénarios, vous pouvez utiliser Select Bulk Collect into une option pour effectuer n'importe quelle tâche rapidement sans perdre trop de temps à écrire du code.
Vous trouverez ci-dessous l'exemple du bloc PLSQL qui prendra les enregistrements de la table EMP et mettra à jour la table BONUS et s'imprimera également à l'écran.
SET SEVEROUTPUT ON; DECLARE TYPE t_emp IS TABLE OF emp%ROWTYPE; e_rec t_emp; BEGIN SELECT * BULK COLLECT INTO e_rec FROM emp; FORALL i IN e_rec.FIRST .. e_rec.LAST update bonus set amount = e_rec(i).sal * 15 / 100 where empno = e_rec(i).empno; Commit; FOR i IN e_rec.FIRST .. e_rec.LAST LOOP DBMS_OUTPUT. put_line ( 'Bonus Updated For Employee: ' || e_rec (i).ename || ' ' || 'Bonus: ' || e_rec(i).sal * 15 / 100); END LOOP; END;
-
Utilisation du dossier de travail dans la base de données de contrôle de code source
-
Comment configurer la réplication MySQL dans RHEL, Rocky et AlmaLinux
-
Quels sont les frais généraux liés à l'utilisation d'AUTOINCREMENT pour SQLite sur Android ?
-
Types de données SQL :5 pires choix que vous devez arrêter aujourd'hui