0
我寫了一個連接到oracle數據庫的shell腳本並執行了幾條命令。代碼如下所示。Oracle錯誤:[:into:unknown operator
mSqlCmd="select *
from bs_transferSystemRole
where system_ = '$system'
and role_type = $roleType
and abstract_type_desc = '$abstractTypeDesc'"
sqlplus -s $DB_CONNECT <<EOF 2>/dev/null
WHENEVER SQLERROR EXIT SQL.SQLCODE
set echo off termout off feedback off heading off
$mSqlCmd;
exit SQL.SQLCODE;
EOF
if [ $? -eq 0 ]
then
mSQLCode=`sqlplus -s $DB_CONNECT <<EOF 2>/dev/null
WHENEVER SQLERROR EXIT SQL.SQLCODE
set echo off termout off feedback off heading off
insert into bs_transferSystemRole (system_, role_type, abstract_type_desc,use_synch_client_logic, multiple_match_option) values ('$system', $roleType, '$abstractTypeDesc','$useSyncClientLogic', $multiMatchOption);
exit SQL.SQLCODE;
EOF`
if [ $mSQLCode -ne 0 ] // error at this line: [: into: unknown operator
then
print "Error: Failed to add record to bs_transferSystemRole table for " \
| tee -a $logFile
else
print "Record for '$line' added to bs_transferSystemRole table "\
| tee -a $logFile
fi
當我運行在Linux計算機上,上面的腳本有適當的輸入文件,其中包含在代碼中所有相應的變量,我得到一個錯誤[:進入:未知運營商在該行如果[$ mSQLCode - ne 0]。
是在oracle中插入語句的問題。任何幫助,將不勝感激。
你可以在行之前添加一行'echo $ mSQLCode'('if [$ mSQL..'並且輸出.comment是'if else'一段時間以便清晰。 –
@KaushikNayak我已經完成了這個它打印下面的「insert into bs_transferSystemRole(system_,role_type,abstract_type_desc,use_synch_client_logic,multiple_match_option)values('COREIN',67305744,'0','N',0)」 –
也許你應該添加一個shebang到你的頭腳本:'#!/ usr/bin/env bash'確保你得到了你期望的解釋器。另外,我還以爲你應該像'$ mSQLCode'一樣加雙引號變量。最後,一些分號似乎從地方丟失我會把它們放在它們後面,就像關閉後的']'和'then'之前一樣。 – jww