gpt4 book ai didi

sql - SP2-0734 : unknown command beginning select

转载 作者:搜寻专家 更新时间:2023-10-30 23:25:52 29 4
gpt4 key购买 nike

我在 Azure DevOps 服务器 2019(前 TFS)上构建了连续的自动化应用程序部署。部署的一部分是检查 Oracle 数据库状态,在运行脚本之前,下面的脚本工作了一年,并且(可能在最新的 Azure DevOps 服务器更新 2019.1 之后)它停止工作并出现错误:

SQL> SP2-0734: unknown command beginning " select..." - rest of line ignored. 
SQL> SP2-0734: unknown command beginning " select..." - rest of line ignored.
$chekdbsql = 'select status from v$instance;'
$i = 1
$chkdb = ""
while ($chkdb.Contains("OPEN") -ne 'True') {
Clear-Variable -Name chkdb
$chkdb = ($chekdbsql | cmd /c "sqlplus -s user/password@localhost/ora as sysdba")
if ($chkdb.Contains("OPEN") -eq 'True'){
break
}
echo "Trying to connect to database. Attempt $i"
sleep 10
$i++ }
write-host "Connected! Database's status is 'open'." -ForegroundColor green

如果我尝试在构建应用程序的机器上本地执行命令 - 它运行良好。

最佳答案

select 之前的空格让我觉得这是一个字符编码问题。参见例如this , this

beginning " select..."

我对 powershell 不够熟悉,不知道问题出在哪里。我可以想到一个解决方法,但这有点麻烦。

$chekdbsql = "`nselect status from v`$instance;"

这确保了在字符串开头插入的任何垃圾字符都将在 SQL*Plus 中单独占一行。因此,如果您获得 SP2-0734,您的选择命令仍会在此之后运行。因为它现在是一个双引号字符串,所以我转义了 $

关于sql - SP2-0734 : unknown command beginning select,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58030871/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com