代码之家  ›  专栏  ›  技术社区  ›  djangofan

如何使用SQLPLUS在命令行上将参数传递给PL/SQL脚本?

  •  40
  • djangofan  · 技术社区  · 12 年前

    如何使用SQLPLUS在命令行上将参数传递给PL/SQL脚本?我可以这样调用PL/SQL脚本,但该脚本需要参数才能成功。如何运行sqlplus.exe以便将参数传递给脚本?

    @ECHO off
    // where HOST030 is a tnsnames alias to a machine, port, and instance    
    sqlplus.exe MYUSER/mypassword@HOST030 < refreshDataOnOracle.sql    
    pause
    

    我试图搜索答案,但在任何地方都找不到SQLPLUS的“参数示例”。我怀疑这将是使用SQL*Plus“START”命令的类似方法?

    2 回复  |  直到 12 年前
        1
  •  64
  •   mustaccio Gandalf    12 年前

    首先,您需要调用您的脚本,如下所示:

    sqlplus.exe MYUSER/mypassword@HOST030 @refreshDataOnOracle.sql foo bar  
    

    您将使用“@”符号来指示要执行的文件名,而不是操作系统重定向。您还将在命令行上提供脚本参数。在脚本中,您将使用 &1 , &2

    update mytable set mycol = '&2' where myid = '&1';
    

    这将转化为

    update mytable set mycol = 'bar' where myid = 'foo';
    
        2
  •  5
  •   Devon_C_Miller    9 年前

    如果您想记录sqlplus的运行,可以使用以下语法:

    sqlplus.exe MYUSER/mypassword@HOST030 @refreshDataOnOracle.sql foo bar  >> log.log