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

ऑटो कमिट के साथ ऑरैकल टेबल बनाएं

एक स्वायत्त लेनदेन का उपयोग करना संभव है।

CREATE TABLE t1 (x INTEGER PRIMARY KEY);
CREATE TABLE t2 (x INTEGER);
CREATE TABLE t3 (x INTEGER);
CREATE TABLE t4 (x INTEGER REFERENCES t1(x));

फिर इस अनाम PL/SQL को चलाएँ। ध्यान से देखें, स्थानीय प्रक्रिया upd_table_3 घोषित होने पर नहीं चलाया जाता है। मुख्य BEGIN . में कॉल करने पर इसे चलाया जाता है ब्लॉक करें:

DECLARE 
  PROCEDURE upd_table_3 IS
  PRAGMA AUTONOMOUS_TRANSACTION;
  BEGIN
    INSERT INTO t3 VALUES (3);
    COMMIT;
  END;
BEGIN
  INSERT INTO t1 VALUES (1);
  INSERT INTO t2 VALUES (2);
  upd_table_3;
  INSERT INTO t4 VALUES (4);
  COMMIT;
END;
/

ORA-02291 . के साथ चौथे इंसर्ट पर प्रक्रिया जानबूझकर विफल होनी चाहिए . मैंने इसे इस तरह बनाया। फिर

ROLLBACK;

t3 . को छोड़कर सभी तालिकाओं को वापस रोल किया जाना चाहिए , जिसे हमने एक स्वायत्त लेनदेन में सम्मिलित किया था।

SELECT * FROM t1;

no rows selected

SELECT * FROM t2;

no rows selected

SELECT * FROM t3;

         X
----------
         3

SELECT * FROM t4;

no rows selected


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SEC_CASE_SENSTIVE_LOGON 12c . में

  2. एकाधिक स्कीमा में तालिकाओं से विभाजन कैसे छोड़ें?

  3. ओरेकल विशिष्ट अनुक्रम क्यों लौटाता है यदि 'ऑर्डरबी' मान समान हैं?

  4. Oracle डेटा मास्किंग

  5. ADO.NET प्रदाता 'Oracle.ManagedDataAccess.Client' या तो मशीन या एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल में पंजीकृत नहीं है, या लोड नहीं किया जा सका