有两个DDL脚本" s1.sql"和" s2.sql" ,取决于用户输入应该执行这些脚本中的任何一个。
请建议我。
答案 0 :(得分:0)
要执行条件分支,您可以使用SQL * Plus变量来获取用户输入。使用 DECODE 根据用户的输入识别需要执行的脚本。
例如,假设您有两个脚本s1.sql
和s2.sql
。您想根据用户输入决定执行哪个脚本。如果用户输入s1
,则执行s1.sql
否则执行s2.sql
。
测试用例
SQL> variable condition varchar2(20);
SQL> exec :condition := 's1';
PL/SQL procedure successfully completed.
SQL> column which_script new_value this_script
SQL> SELECT DECODE(:condition, 's1', 'D:\s1.sql', 'D:\s2.sql') which_script
2 FROM dual;
WHICH_SCR
---------
D:\s1.sql
SQL>
所以,现在你知道要执行哪个脚本。
答案 1 :(得分:0)
试试这个:
ACCEPT FILE_NAME PROMPT 'Enter S1 or S2 :'
@ FILE_NAME
它将询问您输入S1或S2,在输入值后,它将通过@执行脚本,并且不用担心它将默认添加的.sql扩展名。