2012-08-10 29 views
1

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

为简单起见,假设我有foo.sql如下:

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

一旦我已经登录到SQL * Plus,是有我执行foo.sql和以类似的方式重定向输入方式击?在理想的世界中,我可以这样做,如下所示:

@foo < "SOMETABLE" 

不幸的是,这是行不通的。有什么办法可以做到这一点?

回答

2

你可以从文件到sqlplus命令本身重定向输入,登录前:

> sqlplus user/[email protected] @foo < input_file 
+0

感谢您的想法。我认为这可能是唯一的方法,我没有任何运气在'sqlplus'本身内找到类似的机制。我自己用这个方法很好,但是赋值规范没有指定标记如何输入数据。通常它是自动的,但它们可以手动执行(或者像你一样重定向到“sqlplus”本身)。 为了防万一有人有办法在sqlplus本身中重定向,我会将问题留待今后一天左右,但如果没有发生,我会接受您的答案。同时,我会通过电子邮件发送我的演讲并进行澄清。 – 2012-08-11 01:22:44