开发环境:
OS:windows 2008 R2 64bit
Oracle: 11g R2 64bit
Oracle Client: ODTwithODAC112021 (32 bit )
IDE :VS2008
话说事情的起因是重装了系统,把系统升级成了64位,Oracle 也就装了64位的,为了要用PL/sql dev,就必须装 32位的oracle client.
于是安装ODT,再设置PL/sql dev指向32位的客户端目录,到此一切顺利,pl/sql成功连接数据库。
------------------------------------------------------------分割线,下面苦难历程----------------------------------------------------------------------------------------
运行程序,得到
ORA-12541: TNS: 无监听程序
于是改TNS配置、查资料、删了oracle客户端重装各种办法用尽,错误依旧。
最后问题出在了连接字符串上,该连接字符串在32位下是能运行的,但64位下就不行。
老的
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl2008r2)));User Id=em;Password=123456;
新的
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521) ) )(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl2008r2)));User id=em; Password=em; enlist=false; pooling=false;
应该是多了个SERVER=DEDICATED,64位就能用了。