从PowerShell执行SQL * Plus

时间:2012-03-09 00:28:22

标签: powershell call sqlplus

我在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帮助

我做错了什么?谢谢!

2 个答案:

答案 0 :(得分:3)

我自己找到了解决方案

我使用cmd.exe /c,而alex.ps1现在是

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

希望得到这个帮助。

答案 1 :(得分:0)

要为@Alex Yeung提供替代解决方案,您只需使用PowerShell &调用命令即可直接运行语句,而无需使用cmd.exe

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

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

DISCO -- Disconnect
EXIT -- Exit SQLPlus