2009-04-23 82 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”。删除该安装选项解决了我的问题。