【发布时间】:2013-05-09 05:41:33
【问题描述】:
如何在 SQLPlus 中运行路径名以字符串形式传递的脚本。类似于以下内容(失败):
SET SERVEROUTPUT ON;
DECLARE
path VARCHAR2(128);
BEGIN
path := '<runtime_path>' || 'test_script.sql';
dbms_output.put_line(path);
@ path;
END;
/
【问题讨论】:
-
为什么要在 Oracle 中运行它?如果必须是脚本,为什么不使用调度程序?如果它不必是脚本,则将其放在包/过程中并在数据库中安排它。在回答您的问题时,您 可以 将其读入 clob 并使用 dbms_sql 执行......尽管对于应该是一个简单的过程或 cron 调用来说,这似乎是一个巨大的过度杀伤力。
-
@Ben,这是一个开发环境。我们有数百个来自外部团队的单行 DDL 脚本,它们构建了用于验证测试另一个软件组件的模式。
-
我还是不知道你为什么需要在Oracle中做。如果你有数百个,那么将它们全部放在一个 shell 脚本中并运行它;你可以用一行来执行它们,如果你愿意的话,可以明智地使用
grep和awk...... -
@Ben,目前脚本列表嵌入在前面有
@的另一个sql 脚本中,该脚本具有错误报告和其他常见设置。所以,我想实际选择嵌套脚本的路径。 -
ThomasMcleod:你是在 unix 还是 windows 上?
标签: oracle plsql oracle11g sqlplus sql-scripts