在SQL * Plus中输入脚本的重定向

时间:2012-08-10 11:05:16

标签: sql oracle sqlplus

我想知道是否可以在接受用户输入的SQL脚本中提供变量值。这是较大任务的一小部分(一个问题涉及编写一个必须调用另一个脚本的脚本,这又需要用户输入)。我无法改变需要用户输入的脚本。

为简单起见,假设我在foo.sql中有以下内容:

ACCEPT TABLENAME CHAR PROMPT 'Enter Table: '
SELECT * FROM &TABLENAME;

一旦我已经登录SQL * Plus,有没有办法让我以类似于Bash的方式执行foo.sql和重定向输入?在一个理想的世界里,我可以这样做:

@foo < "SOMETABLE"

不幸的是,这不起作用。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

在登录之前,您可以将输入从文件重定向到sqlplus命令:

> sqlplus user/pwd@db @foo < input_file