मूल रूप से वे वही काम करते हैं, जो पीएल/एसक्यूएल में डीडीएल स्टेटमेंट निष्पादित करने के लिए एक तंत्र प्रदान करना है, जो मूल रूप से समर्थित नहीं है। यदि स्मृति मेरी अच्छी तरह से सेवा करती है, तो 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)');
मैं इसकी अनुशंसा नहीं कर रहा हूं, केवल यह कह रहा हूं कि यह किया जा सकता है।