我正在使用 unix 機器,執行 oracle sql 命令的唯一方法是通過我們授予訪問權限的 unix 腳本,如下所示:
#! /user/bin/ksh
User = 'PATH' # I can't read the file in this path
sqlplus $user << word # I don't know what it is used for
然后我開始撰寫sql命令然后通過cmd執行腳本
我的問題是:我有什么方法可以通過上面的資訊通過cmd直接登錄sqlplus
我嘗試使用此命令直接登錄 SQL*Plus:
sqlplus $user << word # I don't know what it is used for
但它提示用戶名:#我不知道
uj5u.com熱心網友回復:
User = 'PATH' # 我無法讀取此路徑中的檔案 沒有要讀取的檔案。您正在將字串文字“PATH”分配給環境變數“用戶”。你也可以說“用戶='FUBAR'”
sqlplus $user << word # 不知道是干什么用的
它告訴作業系統啟動可執行檔案“sqlplus”,將環境變數“$user”的值傳遞給它,然后將腳本下一行的其他輸入重定向到字串文字“word”。這稱為“輸入重定向”,該行與以單詞“word”開頭的行之間的命令有時稱為“a 'here' document”。使用字串文字 'word' 來終止它充其量是奇怪和誤導的。大多數人為此目的使用“EOF”的一些變體。
我也不知道它的預期用途是什么。在 *nix 中,環境變數(如檔案名)區分大小寫。所以這個變數“user”與您在上一行中設定的變數“User”不同。
然后我開始撰寫sql命令然后通過cmd執行腳本
我不確定你的意思。你是說在這一點上,你的腳本有打算由 sqlplus 處理的 sql 命令嗎?正如您使用輸入重定向所表明的那樣?
但它提示用戶名:# 我不知道
好吧,盡管存在所有其他問題,如果您不知道用戶名和密碼,您將永遠無法連接到資料庫。
uj5u.com熱心網友回復:
如果你的 unix 機器設定正確,變數 PATH 應該包括 /usr/local/bin,你可以通過輸入命令 echo $PATH 來測驗。
如果它的設定,oracle 檔案 oraenv 中的源像這樣
. oraenv
請注意,單詞 oraenv 之間應該有一個空格。通過這樣做,它應該將目錄 $ORACLE_HOME:$ORACLE_HOME/bin 附加到 PATH 變數中。由于 sqlplus 在 $ORACLE_HOME/bin 中,現在應該可以找到它。
我不建議偏離這個標準。您應該與您的 unix 管理員和 Oracle dba 交談,以確保設定正確
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/452545.html
