Shell-Script
如何將選擇語句從 Oracle 分配給 shell 變數
我有一個執行良好的腳本
TOAD
:SELECT max (ID)+1 from apps_details;
當我嘗試在 shell 腳本中執行它時,出現錯誤:
DB_CONNECT="XXXXX/XXXXX@XXXXXX" echo "Inserting the DataBase" /oravl01/oracle/12.1.0.1/bin/sqlplus -s $DB_CONNECT <<END set head off set feedback off set pagesize 2400 set linesize 2048 ID_VAL=`SELECT max (ID)+1 from apps_details;` exit END
/pciuser/tools/jenkins/jenkins/scripts/Jenkins_Internal/Create_Jenkins_Container/InsertToDB.ksh[31]: syntax error at line 1: `(' unexpected
第 31行指的是
oravl01
行,但我知道問題不存在,因為一旦我刪除了ID_VAL
分配,它就可以工作。編寫它的正確語法是什麼?
我認為首先定義你的命令然後執行它來保存它的輸出要乾淨得多(也更簡單):
DB_CONNECT="XXXXX/XXXXX@XXXXXX" read -r -d '' command <<END set head off set feedback off set pagesize 2400 set linesize 2048 SELECT max (ID)+1 from apps_details; exit END echo "Inserting the DataBase" ID_VAL=$(/oravl01/oracle/12.1.0.1/bin/sqlplus -s "$DB_CONNECT" <<<"$command")
這樣,您可以輕鬆地將輸出儲存在一個變數中,並且您可以將命令與腳本流分開,這將使將來更容易理解和維護。