繁体   English   中英

如何执行DDL sql脚本取决于Oracle DB中的用户输入

[英]How to Execute DDL sql script depends on user input in Oracle DB

有两个DDL脚本“ s1.sql”和“ s2.sql”,具体取决于用户输入,应该执行这些脚本中的任何一个。

请建议我。

要进行条件分支 ,可以使用SQL * Plus变量获取用户输入。 使用DECODE根据用户的输入来确定需要执行哪个脚本。

例如,假设您有两个脚本s1.sqls2.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>

因此,现在您知道要执行哪个脚本。

尝试这个:

ACCEPT FILE_NAME PROMPT 'Enter S1 or S2 :'
@ FILE_NAME

它将要求您输入S1或S2,输入值后,它将通过@执行脚本,而不必担心默认情况下将添加的.sql扩展名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM