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

ओरेकल डेटाबेस से प्रोग्रामेटिक रूप से डीडीएल कैसे उत्पन्न करें?

DBMS_METADATA पैकेज (यह मानते हुए कि आप Oracle के हाल के संस्करण पर हैं) डेटाबेस में किसी भी वस्तु के लिए DDL उत्पन्न करेगा। तो

SELECT dbms_metadata.get_ddl( 'TABLE', 'TABLEA', 'SCHEMAA' )
  FROM dual;

स्कीमाए.टेबलए के लिए डीडीएल के साथ एक सीएलओबी लौटाएगा। आप उस अपवाद को पकड़ सकते हैं जिसे फेंक दिया गया है कि वस्तु मौजूद नहीं है, लेकिन मैं सुझाव दूंगा कि आप डेटा डिक्शनरी (यानी DBA_OBJECTS) से पूछें कि यह सत्यापित करने के लिए कि स्कीमा में TableA नाम की एक तालिका है, अर्थात

SELECT COUNT(*) 
  FROM dba_objects
 WHERE owner = 'SCHEMAA'
   AND object_name = 'TABLEA'
   AND object_type = 'TABLE'

ध्यान दें कि यदि आपके पास DBA_OBJECTS तक पहुंच नहीं है, तो आप इसके बजाय ALL_OBJECTS का उपयोग कर सकते हैं। हालाँकि, चिंता यह है कि स्कीमा में एक टेबलए हो सकता है, जिस पर आपके पास सेलेक्ट एक्सेस नहीं है। वह तालिका ALL_OBJECTS में दिखाई नहीं देगी (जिसमें वे सभी ऑब्जेक्ट हैं जिन तक आपकी पहुंच है) लेकिन यह DBA_OBJECTS में दिखाई देगा (जिसमें डेटाबेस में सभी ऑब्जेक्ट हैं, चाहे आप उन्हें एक्सेस करने की क्षमता कुछ भी हों)।

फिर आप या तो फ़ाइल में डीडीएल लिख सकते हैं या, यदि गिनती 0 है, तो इंगित करें कि वस्तु मौजूद नहीं है। किसी संग्रहीत कार्यविधि से, आप डेटाबेस सर्वर पर किसी फ़ाइल को लिखने के लिए UTL_FILE पैकेज का उपयोग कर सकते हैं। यदि आप क्लाइंट फ़ाइल सिस्टम पर किसी फ़ाइल को लिखने का प्रयास कर रहे हैं, तो आपको ऐसी भाषा का उपयोग करना होगा जिसकी क्लाइंट ऑपरेटिंग सिस्टम के संसाधनों तक पहुँच हो। एक छोटा सी/जावा/पर्ल/आदि प्रोग्राम एक सीएलओबी का चयन करने और क्लाइंट ऑपरेटिंग सिस्टम पर उस डेटा को फ़ाइल में लिखने में सक्षम होना चाहिए।




  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 ORA-01008:सभी चर बाध्य नहीं हैं त्रुटि w/पैरामीटर

  2. JDBC - Oracle ArrayIndexOutOfBoundsException

  3. Oracle SQL मनमाने ढंग से पंक्तियों को लौटाता है जब क्लॉज द्वारा कोई ऑर्डर नहीं किया जाता है

  4. मैं Oracle में एक आरक्षित शब्द से कैसे बचूँ?

  5. ATAN2 () Oracle में फ़ंक्शन