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

Oracle में दो डेटाबेस ऑब्जेक्ट्स की तुलना कैसे करें?

इस ट्यूटोरियल में, मैं Oracle में DBMS_COMPARISON उपयोगिता पैकेज का उपयोग करके विभिन्न स्कीमाओं के दो डेटाबेस टेबल ऑब्जेक्ट्स की तुलना करने के लिए एक उदाहरण दे रहा हूँ।

DBMS_COMPARISON का उपयोग करके Oracle में दो टेबल ऑब्जेक्ट्स की तुलना करने के चरण

चरण-1 DBMS_COMPARISON का उपयोग करके तुलना बनाएं। निम्नलिखित उदाहरण में, यह एक ही डेटाबेस में SCOTT स्कीमा से एक तालिका और HR स्कीमा से एक तालिका की तुलना करेगा और emp_compare नामक एक तुलना बनाएगा। ।

BEGINDBMS_COMPARISON.create_comparison (तुलना_नाम => 'emp_compare ',schema_name => 'scott',object_name => 'emp',dblink_name => NULL,remote_schema_name => 'hr',remote_object_name => 'emp2');END;/

आउटपुट:

PL/SQL प्रक्रिया सफलतापूर्वक पूरी हुई।

चरण -2 उपरोक्त PL/SQL ब्लॉक को निष्पादित करने के बाद, तुलना बनाई जाएगी। अगला कदम इस तुलना को नीचे दिखाए अनुसार चलाना है।

सेट SERVEROUTPUT ONDECLAREt_scan_info DBMS_COMPARISON.comparison_type;l_diff BOOLEAN;BEGINl_diff :=DBMS_COMPARISON.compare (comparison_name => 'emp_compare) ',scan_info => t_scan_info,perform_row_dif => TRUE);अगर नहीं l_diff THENDBMS_OUTPUT.put_line('अंतर मिले और scan_id is' || t_scan_info.scan_id);ELSEDBMS_OUTPUT.put_line('कोई अंतर नहीं मिला।');END IF;;/

आउटपुट:

अंतर पाया गया और scan_id 7PL/SQL प्रक्रिया सफलतापूर्वक पूरी हो गई है।

चरण -3 यदि अंतर पाया जाता है तो आप निम्न क्वेरी द्वारा अंतर की जांच कर सकते हैं:

तुलना_नाम चुनें,स्थानीय_रोविद,remote_rowid,statusFROM user_comparison_row_difWHEREतुलना_नाम ='EMP_COMPARE ';

आउटपुट:

COMPARISON_NAME    LOCAL_ROWID             REMOTE_ROWID         STATUS EMP_COMPARE       AAAR3sAAEAAAAAAXAAA     AAAU5vAAEAAAAW9AAA   DIFEMP_COMPARE       AAAR3sAAEAAAACXAAD     AAAU5vAAEAAAAAAW9AAD   DIF
 

जैसा कि ऊपर दिखाया गया है, आपको आउटपुट मिलेगा। जिसमें यह आपको तुलना नाम, स्थानीय पंक्ति आईडी (scott.emp तालिका पंक्ति आईडी), दूरस्थ पंक्ति आईडी (hr.emp2 तालिका पंक्ति आईडी) और स्थिति दिखाएगा।

अंतर जांचने के लिए अब आप इन ROWIDs के लिए दोनों तालिकाओं को क्वेरी कर सकते हैं।

आप SQL क्वेरी का उपयोग करके अलग-अलग स्कीमा से दो टेबल डेटा की तुलना भी कर सकते हैं, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।

Scott.emp से EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNOFROMचुनेंमाइनस ईएमपीएनओ, ईनाम, जॉब, एमजीआर, हायरडेट, एसएएल, कॉम, विभाग को hr.emp2 से चुनें;

यह भी देखें:

  • PL/SQL उदाहरण में एक स्ट्रिंग को विभाजित करें
  • Oracle DUMP (dmp फ़ाइल) से DDL स्टेटमेंट निकालें

  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 SQL कथन में अल्पविराम द्वारा अलग किए गए मानों की सूची बनाना

  2. C# को Oracle डेटाबेस से जोड़ने के लिए आवश्यक न्यूनतम क्लाइंट फुटप्रिंट क्या है?

  3. एक और 12c अनुकूलक श्वेत पत्र

  4. ओरेकल डेटाबेस में तत्काल निष्पादन के साथ तालिका डीडीएल कैसे चलाएं

  5. Oracle SQL डेवलपर पर एक ही समय में 2 प्रश्न चलाएँ?