【发布时间】:2021-05-02 07:32:08
【问题描述】:
我创建了一个 .bat 文件,通过 Windows 任务调度定期导出 csv 文件,效果很好。 但是当我切换到 Powershell 时不起作用。它返回(在 ISE 中并右键单击 .ps1“使用 Powershell 运行”):
SQL*Plus:版本 19.0.0.0.0 - 2021 年 5 月 2 日星期日 14:05:52 生产
版本 19.10.0.0.0
版权所有 (c) 1982, 2020,甲骨文。保留所有权利。
错误:ORA-12154:TNS:无法解析指定的连接标识符
所以。我不确定我做错了什么。变量输入是假人。
在我的 .bat 中包含:
SET NLS_LANG=.AL32UTF8
SET hostIp="123.123.1.12"
SET 用户名="user1"
设置密码="pass1"
设置端口="1521"
SET service="myDBname"
SET sqlPath="C:\我的脚本\TEST_EXPORT.sql"
sqlplus %username%/%password%@%hostIp%:%port%/%service%@"%sqlPath%"
在我的 .ps1 中包含:
cls
$hostIp="123.123.1.12"
$username="user1"
$password="pass1"
$port="1521"
$service="myDBname"
$sqlPath="C:\我的脚本\TEST_EXPORT.sql"
echo "$username/$password@$hostIp`:$port/$service @$sqlPath"
sqlplus "$username/$password@$hostIp`:$port/$service @$sqlPath"
【问题讨论】:
-
Powershell 版本缺少 Cmd 版本的
$sqlPath周围的双引号。 -
除了 vonPryz 的好发现之外,sqlplus 行中的
$database没有在任何地方定义,至少在您给出的代码中是这样。它上面的行显示$service而不是$database -
@Daniel Thx。指出。我错过了输入那个。用 $service 编辑。仍然出现同样的错误。
-
@vonPryz 我应该如何在 $sqlpath 中添加双引号?双引号内的双引号?
-
不客气。关于双引号,您可以将它们加倍或使用反引号将它们转义。
标签: powershell sqlplus