Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pemicu SQL pada tabel mutasi yang dihapus

Coba gunakan PRAGMA AUTONOMOUS_TRANSACTION di pemicu.

Dokumen Oracle:https://docs.Oracle.com/ cd/B14117_01/appdev.101/b10807/13_elems002.htm

    CREATE OR REPLACE TRIGGER planes_del_trigg
            BEFORE DELETE ON planes
        DECLARE 
            CURSOR dist_cur IS
                SELECT distance
                FROM flights;
            v_dist flights.distance%TYPE;
            v_counter NUMBER(3);

 PRAGMA AUTONOMOUS_TRANSACTION;
        BEGIN
            OPEN dist_cur;
            LOOP
                FETCH dist_cur INTO v_dist;
                IF v_dist <= :OLD.range THEN
                    v_counter := v_counter + 1;
                END IF;
                EXIT WHEN dist_cur%NOTFOUND;
            END LOOP;
            CLOSE dist_cur;
            IF v_counter >= 3 THEN
                RAISE_APPLICATION_ERROR(-20501, 'This plane cannot be deleted!');
            END IF;
        END planes_del_trigg;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memeriksa apakah kursor mengembalikan catatan apa pun di Oracle?

  2. ORA-01847 hari dalam sebulan harus antara 1 dan hari terakhir dalam sebulan - tetapi datanya OK

  3. Variabel Oracle

  4. Perilaku aneh dari gabungan luar penuh di Oracle - bagaimana itu bisa dijelaskan?

  5. PDB Cabut Kesalahan ORA-17528