【问题标题】:sqlplus: get parameters of file.sql executionsqlplus:获取file.sql执行的参数
【发布时间】:2022-01-17 16:58:28
【问题描述】:

从一个 bat 文件中,我正在使用一个以相同方式调用 SQL/Plus 的进程:

@echo off
start sqlplus user/password@instance_name file.sql <instance_name>

echo End of process
pause

在 file.sql 里面我有类似的东西:

SET FEEDBACK OFF
SET UNDERLINE OFF
SET PAGESIZE 0
SET VERIFY OFF
SET SCAN ON
SET HEADING OFF
SET RECSEP OFF
SET TRIMSPOOL ON
SET FEEDBACK OFF
SET TERMOUT OFF
SET LINESIZE 1000
SET BLOCKTERMINATOR OFF

set instance_name=<FROM PARAMETER>

SET VERIFY ON
SET HEADING ON

EXIT

如何获取在 SQL/Plus 中作为参数传递的名称?

【问题讨论】:

    标签: oracle batch-file sqlplus


    【解决方案1】:

    使用&amp;1


    documentation 开始,SQL/Plus 命令的语法如下:

    SQLPLUS [ [Options] [Logon|/NOLOG] [Start] ]

    然后START parameter

    开始

    @{url|file_name[.ext]} [arg ...]

    指定要运行的脚本名称和参数。可以从本地文件系统或 Web 服务器调用该脚本。

    SQLPlus 将参数传递给脚本,就像使用 SQLPlus START 命令执行文件一样。如果没有指定文件后缀(文件扩展名),则使用 SET SUFFIX 命令定义的后缀。默认后缀为 .sql。

    有关详细信息,请参阅START 命令。

    那么对于START 命令:

    arg ...

    您希望传递给脚本参数的数据项。如果您输入一个或多个参数,SQL*Plus 会将这些值替换为脚本中的参数(&amp;1&amp;2 等)。第一个参数替换每次出现的&amp;1,第二个参数替换每次出现的&amp;2,依此类推。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多