मुझे यहां एक दिलचस्प विचार मिला है, जो स्पेंसर 7593 के उत्तर के साथ संयुक्त होने पर, मुझे चुनिंदा उप-स्क्रिप्ट कॉलिंग प्राप्त करेगा, जिससे मैं पीएल/एसक्यूएल आउटपुट मान पास कर सकता हूं। बुद्धि के लिए:
VAR continue number;
EXEC :continue := 1;
BEGIN
SELECT some_bool_test() INTO :continue FROM dual;
END;
SET termout OFF
COLUMN script_name NEW_VALUE v_script_name
SELECT decode(:continue, 1, 'run_stuff.sql', 'skip.sql') script_name FROM dual;
SET termout ON
@&v_script_name :some_other_values
जहां skip.sql
एक खाली टेक्स्ट फ़ाइल है।
अपडेट करें: मैंने इसमें से अधिकांश को RUN.SQL
. में स्थानांतरित कर दिया है फ़ाइल, जहां मैं बूलियन (0 या 1) में &1
. के रूप में पास करता हूं , स्क्रिप्ट का नाम सफलता पर &2
. के रूप में कॉल करने के लिए , और फिर किसी अन्य अपेक्षित पैरामीटर को कॉल की गई स्क्रिप्ट को पास करने के लिए। इस प्रकार, यह कुछ इस तरह दिखता है:
VAR continue number;
EXEC :continue := 1;
BEGIN
SELECT some_bool_test() INTO :continue FROM dual;
END;
@run.sql :continue 'run_stuff.sql' :some_other_values