【问题标题】:Input redirection for script in SQL*PlusSQL*Plus 中脚本的输入重定向
【发布时间】:2012-08-10 11:05:16
【问题描述】:

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

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

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

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

@foo < "SOMETABLE"

不幸的是,这不起作用。有没有办法做到这一点?

【问题讨论】:

    标签: sql oracle sqlplus


    【解决方案1】:

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

    > sqlplus user/pwd@db @foo < input_file
    

    【讨论】:

    • 感谢您的想法。我认为这可能是唯一的方法,我没有运气在sqlplus 本身中找到类似的机制。我自己对这种方法很好,但是分配规范没有指定标记将如何输入数据。通常它是自动化的,但他们可能会手动执行(或重定向到 sqlplus 本身)。我将把这个问题留一天左右,以防万一有人有办法在 sqlplus 本身内重定向,但如果这没有发生,我会接受你的回答。在此期间,我会通过电子邮件发送我的讲座并得到一些澄清。
    猜你喜欢
    • 2010-12-16
    • 2010-09-05
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多