Oracle में "विशेष" व्यवहार है:डायनामिक SQL में प्लेसहोल्डर नाम दोहराया गया कथन
अनाम ब्लॉक या कॉल स्टेटमेंट में नाम बराबर होने पर बाइंड मानों को दोहराने की आवश्यकता नहीं है। उदाहरण के लिए यह बेनामी ब्लॉक काम कर रहा है:
DECLARE
a NUMBER := 4;
b NUMBER := 7;
plsql_block VARCHAR2(100);
BEGIN
plsql_block := 'BEGIN calc_stats(:x, :x, :y, :x); END;';
EXECUTE IMMEDIATE plsql_block USING a, b; -- calc_stats(a, a, b, a)
END;
/
लेकिन यह EXECUTE IMMEDIATE plsql_block USING a, b;
एक प्रक्रिया के अंदर work काम नहीं करता है ।