错误描述
-
操作系统是Win7 x64,Oracle服务端是Oracle11g x64,客户端是Oracle10gR2 x86。
-
使用PL-SQL Developer连接正常
-
使用系统ODBC连接正常。这里要注意的是,64位系统默认启动的是64位ODBC数据源管理器,默认指向的是服务端连接,所以需要为Oracle服务端也配置TNS Service Name,否则同样会连接报错。PowerDesigner默认启动的是32位的ODBC数据源管理器,程序路径为“%SystemRoot%\SysWOW64\odbcad32.exe”。
-
在PowerDesigner中使用相同的配置连接数据库,死活不成功,始终报“[Oracle][ODBC][Ora]ORA-12154:TNS:无法解析指定的连接标识符”错误。
解决方案
-
ORA-12154错误一般都是由于TNS Service Name配置不正确引起的,本例中可以正常连接PL-SQL,显然不是这个原因,排除。
-
另外一个原因就是路径问题,Oracle对路径比较挑剔,特殊字符通常是罪魁祸首。64位系统安装32位程序默认都是安装在Program Files (x86)下面的,所以考虑本例是不是也是这个原因呢?Oracle安装路径是D:\Oracle,没问题;PL-SQL路径也是D盘根目录,也没问题。再结合系统ODBC能正常连接,而PowerDesigner中不能正常连接的情况,难道是PowerDesigner的路径问题?检查了下PowerDesigner的路径,果然是在Program Files (x86)下面的,于是乎卸载重装,再连接。OK!原来问题这么简单!