Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

उत्परिवर्तित तालिका को हटाने पर SQL ट्रिगर

ट्रिगर में PRAGMA AUTONOMOUS_TRANSACTION का उपयोग करने का प्रयास करें।

Oracle doc: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. मैं JDBC का उपयोग करके Oracle तालिका से XMLTYPE कॉलम निकालने का प्रयास कर रहा हूं और कुछ समस्याएं हैं

  2. पाइइंस्टॉलर के साथ cx_oracle को कैसे बंडल करें

  3. एक खाली तालिका में धीमी क्वेरी निष्पादन। (बड़ी मात्रा में सम्मिलित करने के बाद)

  4. N+1 अतिरेक और सर्वर समेकन

  5. Oracle स्ट्रिंग फ़ंक्शंस (पूरी सूची)