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

Oracle:DBMS_UTILITY.EXEC_DDL_STATEMENT बनाम तत्काल तत्काल

मूल रूप से वे वही काम करते हैं, जो पीएल/एसक्यूएल में डीडीएल स्टेटमेंट निष्पादित करने के लिए एक तंत्र प्रदान करना है, जो मूल रूप से समर्थित नहीं है। यदि स्मृति मेरी अच्छी तरह से सेवा करती है, तो EXEC_DDL_STATEMENT DBMS_UTILITY पैकेज के Oracle 7 संस्करण में उपलब्ध था, जबकि नेटिव डायनेमिक SQL (EXECUTE IMMEDIATE) केवल 8 में पेश किया गया था।

एक दो मतभेद हैं। EXECUTE IMMEDIATE मुख्य रूप से डायनेमिक SQL को निष्पादित करने के बारे में है (जैसा कि इसका NDS उपनाम इंगित करता है)। तथ्य यह है कि हम इसे डीडीएल के लिए उपयोग कर सकते हैं। जबकि EXEC_DDL_STATEMENT() - जैसा कि सुझाव दिया गया है - केवल डीडीएल निष्पादित कर सकता है।

लेकिन DBMS_UTILITY संस्करण को केवल पश्चगामी संगतता के लिए नहीं रखा गया है, इसमें एक साफ-सुथरी चाल है जिसे हम तत्काल निष्पादित नहीं कर सकते - एक वितरित फैशन में डीडीएल चला रहे हैं। दूरस्थ डेटाबेस पर एक तालिका बनाने के लिए हम इस कथन को अपने स्थानीय डेटाबेस से चला सकते हैं (बशर्ते हमारे उपयोगकर्ता के पास आवश्यक विशेषाधिकार हों):

SQL>  exec [email protected]_db('create table t1 (id number)');

मैं इसकी अनुशंसा नहीं कर रहा हूं, केवल यह कह रहा हूं कि यह किया जा सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. REFs की तालिका के लिए SCOPE

  2. ओरेकल पीएल/एसक्यूएल DBMS_LOCK त्रुटि

  3. Oracle में एंगल ब्रैकेट्स के साथ नेगेटिव नंबर्स को कैसे फॉर्मेट करें?

  4. मैं PHP में NLS_DATE_FORMAT को कैसे बदल सकता हूँ?

  5. Oracle DB सर्वर + APEX + ORDS + JasperReports खरोंच से (भाग 4)