【问题标题】:Execute the Start command with a variable in SQL*Plus在 SQL*Plus 中使用变量执行 Start 命令
【发布时间】:2014-04-04 12:44:12
【问题描述】:

有没有办法以 variable 作为名称来执行 start 命令。实际上,我需要提供一个更改的路径,但文件名仍然相同,因此我决定通过 Define 或 Accept 将值放入用户变量中

但是,我在发布时收到错误:

define name /home/andres/myfile.sql
start &name

-- Same error
start &name.

-- With an env variable, the same problem appears. (defining name in the shell)
start $name
start %name%

如何直接从 SQLPlus 执行具有动态名称的脚本?我知道我可以从 shell 中做到这一点,但这将取决于平台。

最后,我使用的是 CLPPlus,它的行为应该与 SQLPlus 相同。

【问题讨论】:

    标签: oracle db2 sqlplus


    【解决方案1】:

    它似乎在 Unix 上对我有用。下次请提供错误。 您的代码错误:SP2-0136: DEFINE 需要等号 (=)

    定义需要一个 = 符号。

    dual.sql

    select * from dual;
    

    start.sql

    start &1
    
    define filename=/home/oracle/dual.sql
    
    start &filename
    

    运行脚本

    SQL> @start dual
    
    D
    -
    X
    
    
    D
    -
    X
    

    【讨论】:

    • 谢谢解答,等号忘记了。
    • 我正在使用 CLPPlus,但出现此错误:DB250205E 尝试读取文件 '&.sql' 失败。这是 CLPPlus 控制台中的一个 DB2 错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2014-08-27
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多