Oracle Pro * C ORA-12547

时间:2009-04-23 13:16:23

标签: oracle tns oracle-pro-c

我正在重新编译一些Pro * C代码,目前我公司的任何人都没有编译过。它正在编译好,但是当我将它复制到生产服务器并运行它时,我收到Oracle错误ORA-12547(TNS:失去联系)

有什么想法吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

与此相关,我发现当我尝试使用PL / SQL连接到Oracle数据库并且同时我有一个VPN连接时,我得到了同样的错误ORA-12547 TNS在我的Windows机器上丢失了联系人开。

答案 2 :(得分:0)

我在Linux,Oracle 11gR2上遇到了类似的问题。 Oracle所有者可以运行SQL * Plus并通过TNS或本地连接进入。非oracle用户可以通过TNS登录,但不能作为本地连接登录。

结果是答案是ORACLE_HOME文件系统已挂载“nosuid”。删除该挂载选项解决了我的问题。