【问题标题】:Execute SQL*Plus from PowerShell从 PowerShell 执行 SQL*Plus
【发布时间】:2012-03-09 00:28:21
【问题描述】:

我在C:\temp\SQL\alex.sqlC:\temp\alex.ps1 中有两个文件。

C:\temp\SQL\alex.sql,就是这样

select count(*) from user_tables;
quit;

C:\temp\alex.ps1,即

$cmd = "sqlplus";
$args = "user/password@server/sid @C:\temp\SQL\alex.sql";
&$cmd $args;

我尝试了命令提示符中的命令

sqlplus user/password@server/sid @C:\temp\SQL\alex.sql 完美执行!

根本不执行 SQL 文件,但会显示 SQL*Plus 帮助

我做错了什么?谢谢!

【问题讨论】:

    标签: powershell call sqlplus


    【解决方案1】:

    我自己找到了解决办法

    我现在使用cmd.exe /calex.ps1

    $cmd = "cmd.exe";
    $args = "/c sqlplus user/password@server/sid @C:\temp\SQL\alex.sql";
    &$cmd $args;
    

    希望对您有所帮助。

    【讨论】:

    • 您能分享一下您为什么这样做吗?
    【解决方案2】:

    要提供@Alex Yeung 的替代解决方案,您可以简单地使用 PowerShell & call 命令直接运行语句,而无需使用cmd.exe

    &sqlplus user/password@server @C:\path\script.sql
    

    考虑将以下内容添加到脚本文件的底部,以确保 SQLPlus 在完成运行后关闭:

    DISCO -- Disconnect
    EXIT -- Exit SQLPlus
    

    【讨论】:

      猜你喜欢
      • 2012-05-11
      • 2011-01-08
      • 2022-06-13
      • 1970-01-01
      • 2014-09-01
      • 2016-12-26
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多