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

प्रतिबद्धता के बाद मेरे डीबी परिवर्तनों को कैसे रोलबैक करें?

आप इसे फ्लैशबैक सुविधा।

1.एससीएन द्वारा फ्लैशबैक

SELECT column_list
FROM table_name
AS OF SCN scn_number;

2. TIMESTAMP द्वारा फ्लैशबैक

SELECT column_list
FROM table_name
AS OF TIMESTAMP TO_TIMESTAMP('the timestamp value');

current_scn और systimestamp प्राप्त करने के लिए, क्वेरी करें:

SELECT current_scn, SYSTIMESTAMP
FROM v$database;

आइए एक उदाहरण देखें:

तालिका को पुराने स्कैन में फ्लैशबैक करने के लिए, FLASHBACK TABLE..TO SCN का उपयोग करें खंड।

SQL> DROP TABLE string_ex PURGE;

Table dropped.

SQL> CREATE TABLE string_ex (sl_ps_code VARCHAR2(20) );

Table created.

SQL> INSERT INTO string_ex (sl_ps_code) VALUES ('AR14ASM0002');

1 row created.

SQL> INSERT INTO string_ex (sl_ps_code) VALUES ('AR14SFT0018');

1 row created.

SQL> INSERT INTO string_ex (sl_ps_code) VALUES ('AR14SFT0019');

1 row created.

SQL> INSERT INTO string_ex (sl_ps_code) VALUES ('AR14SFT0062');

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT current_scn, SYSTIMESTAMP FROM v$database;

         CURRENT_SCN SYSTIMESTAMP
-------------------- --------------------------------------------
      13818123201277 29-OCT-14 03.02.17.419000 PM +05:30

SQL> SELECT current_scn, SYSTIMESTAMP FROM v$database;

         CURRENT_SCN SYSTIMESTAMP
-------------------- --------------------------------------------
      13818123201280 29-OCT-14 03.02.22.785000 PM +05:30

SQL> SELECT current_scn, SYSTIMESTAMP FROM v$database;

         CURRENT_SCN SYSTIMESTAMP
-------------------- --------------------------------------------
      13818123201282 29-OCT-14 03.02.26.781000 PM +05:30

SQL> SELECT * FROM string_ex;

SL_PS_CODE
---------------
AR14ASM0002
AR14SFT0018
AR14SFT0019
AR14SFT0062

SQL>

मेरी तालिका में चार पंक्तियां हैं

SQL> ALTER TABLE string_ex ENABLE ROW MOVEMENT;

Table altered.

SQL>

पंक्ति संचलन आवश्यक है।

SQL> DELETE FROM string_ex WHERE ROWNUM =1;

1 row deleted.

SQL>
SQL> COMMIT;

Commit complete.

SQL>
SQL> SELECT * FROM string_ex;

SL_PS_CODE
---------------
AR14SFT0018
AR14SFT0019
AR14SFT0062

मैंने अभी एक पंक्ति हटा दी है और परिवर्तन किए हैं।

SQL> FLASHBACK TABLE string_ex TO SCN 13818123201277;

Flashback complete.

फ़्लैशबैक पूरा हो गया है

SQL> SELECT * FROM string_ex;

SL_PS_CODE
---------------
AR14ASM0002
AR14SFT0018
AR14SFT0019
AR14SFT0062

SQL>

अब मेरी तालिका पुरानी स्थिति में आ गई है और पंक्ति वापस आ गई है




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या Oracle स्टोर प्रक्रिया के अंदर GRANT का उपयोग किया जा सकता है?

  2. यूनिक्स पर ऑरैकल का उपयोग करके फ्लैट फ़ाइल में आउटपुट प्राप्त करना

  3. Oracle में ऑडिटिंग

  4. सरल Oracle क्वेरी:शाब्दिक प्रारूप स्ट्रिंग से मेल नहीं खाता

  5. Oracle डाटाबेस 11g के लिए हाइबरनेट बोली?