2009-04-23 29 views
0

我正在重新編譯一些目前在我公司沒有編譯過的Pro * C代碼。它編譯好了,但是當我將它複製到生產服務器並運行它時,我得到了Oracle錯誤ORA-12547(TNS:失去聯繫)Oracle Pro * C ORA-12547

任何想法?

+0

請參閱[**如何解決ORA-12547:TNS:嘗試連接到Oracle **時丟失聯繫人](http://lalitkumarb.com/2015/11/03/ora-12547-tns-lost-接觸時,嘗試對連接到ORACLE /) – 2015-11-03 11:11:10

回答

2

哦,算出來了。 :-)

C可執行文件不是直接在服務器上運行,而是通過設置連接環境的腳本啓動的。即是這樣的:

export SHLIB_PATH=/oracleDatabaseSidHere/oracle/10.2/lib:/usr/lib:/oracleDatabaseSidHere/oracle/10.2/odg/lib 
export ORACLE_BASE=/oracleDatabaseSidHere/oracle 
export ORACLE_SID=oracleDatabaseSidHere 
export ORACLE_HOME=/oracleDatabaseSidHere/oracle/10.2 

# Set up the path and executable to run 
PATH=.\:$PATH:$ORACLE_HOME/bin:/usrlocal/bin 
PATH=$PATH:/path_to_application_logs 

cd /path_to_application 
application 
0

與此相關的,我剛剛發現我得到同樣的錯誤ORA-12547 TNS失去了我的Windows機器上的接觸,當我嘗試連接到使用PL/SQL Oracle數據庫和同時我打開了一個VPN連接。

0

我在Linux上有類似的問題,Oracle 11gR2。 Oracle所有者可以運行SQL * Plus並通過TNS或本地連接進入。非oracle用戶可以通過TNS登錄,但不能作爲本地連接。

原來的答案是ORACLE_HOME文件系統被掛載爲「nosuid」。刪除該安裝選項解決了我的問題。