Bash
Sqlplus:找不到命令
我有兩台虛擬機ubuntu,一台是我安裝oracle 11g express時的伺服器,另一台是簡單的客戶端。我的目標是從客戶端電腦遠端執行 sql 查詢。所以我準備了查詢並將其發送到伺服器。但是在下面的腳本中和與伺服器建立連接之後,sqlplus 就不起作用了。它向我顯示以下錯誤:
Sqlplus:找不到命令
在這項工作中,我使用這個腳本:
#! /bin/bash read -p "saisir votre requete: " req printf "%s\n" "$req" > t1.txt sed -e 's/[;,()'\'']/ /g;s/ */ /g' t1.txt > t.txt `tr -s '[[:blank:]]' '\n' < t.txt `| while IFS= read -r word; do if ! [[ "$word" =~ $(echo ^\($(paste -sd'|' ./req.txt)\)$) ]]; then var=$(base64 <<< $word) sed -i -e "s/$word/$var/g" t1.txt fi done enter code here scp requete.sql cloud1@1.0.0.1:/home/cloud1 #Conection to the Server ssh cloud1@1.0.0.1 '/home/cloud1/Cloud-Serv'
並且文件 Cloud-Serv 包含以下程式碼:
#! /bin/bash "echo "Connection is done !" sudo service oracle-xe start sqlplus / as sysdba exit
在大多數情況下,Oracle 實例在特殊帳戶下執行,例如 oracle。如果您以該使用者身份登錄,則需要設置正確的環境,其中
$ORACLE_BASE
和$ORACLE_HOME
是$ORACLE_SID
最重要的。此外,該PATH
變數可以擴展為具有通常所在$ORACLE_HOME/bin
的位置。sqlplus
看看oraenv
設置正確的環境並嘗試sqlplus
使用執行$ORACLE_HOME/bin/sqlplus
大多數時候,我們將數據庫設置從一台伺服器複製到另一台伺服器。因此,另一個伺服器 oracle HOME 詳細資訊可能會錯誤地複製到新伺服器。
在新伺服器中定位 sqlplus 的方法。
[severdetais scripts]$ locate sqlplus /oracli/app/oracle/product/11.2.0.3/client_1/sqlplus /oracli/app/oracle/product/11.2.0.3/client_1/bin/sqlplus /oracli/app/oracle/product/11.2.0.3/client_1/instantclient/libsqlplusic.so
並在您的導出屬性文件中使用上述位置,如下所示。
export ORACLE_CLIENT=/oracli/app/oracle/product/11.2.0.3/client_1/bin/ export ORACLE_HOME=/oracli/app/oracle/product/11.2.0.3/client_1 export PATH=$PATH:$JAVA_HOME:$JRE_HOME:$ORACLE_CLIENT:$ORACLE_HOME export LD_LIBRARY_PATH=${ORACLE_CLIENT}:${LD_LIBRARY_PATH}:${ORACLE_HOME}:$ORACLE_HOME/lib export SQLPATH=${ORACLE_CLIENT}:${SQLPATH}:${ORACLE_HOME}
希望這可以解決問題!