环境
Win7 X64 + PLSQL10 + OracleClient11g x86 + Oracle11g x64 + VS2010
程序连接oracle报错:
1、oracleclient需要32位,不能使用64位oracleclient。
2、无法连接到远程服务器
3、TNS:could not resolve the connect identifier specified
4、最终环境后,plsql还不能连接oracle,则在oracleclient的安装文件夹下的network下的admin下,
修改tnsnames.ora为
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
#下面是这个TNSNAME对应的主机,端口,协议
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
#使用专用服务器模式去连接需要跟服务器的模式匹配,如果没有就根据服务器的模式自动调节
(SERVER = DEDICATED)
#对应service_name,SQLPLUS>;show parameter service_name; 进行查看
(SERVICE_NAME = orcl)
)
)
修改sqlnet.ora为
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
那么,客户端就会首先在tnsnames.ora文件中找orcl的记录.如果没有相应的记录则尝试把orcl当作一个主机名,通过网络的途径去解析它的 ip地址然后去连接这个ip上GLOBAL_DBNAME=orcl这个实例,当然我这里orcl并不是一个主机名
或者
NAMES.DIRECTORY_PATH= (TNSNAMES)
至此,环境运行正常。
修改完成后,最终的环境是:
Win7 X64 + OracleClient11g X86 + Oracle11g x64 + VS2010 + PLsql10