Ik heb hier een interessant idee gevonden dat, in combinatie met het antwoord van spencer7593, me selectieve subscript-aanroepen zal opleveren, waaraan ik de PL/SQL-uitvoerwaarden kan doorgeven. Te weten:
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
Waar skip.sql
is een leeg tekstbestand.
UPDATE: Ik heb het meeste hiervan verplaatst naar een RUN.SQL
bestand, waar ik in de boolean (0 of 1) doorgeef als &1
, de scriptnaam om succes aan te roepen als &2
, en vervolgens alle andere verwachte parameters die aan het aangeroepen script moeten worden doorgegeven. Dus uiteindelijk ziet het er ongeveer zo uit:
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