NAMES.DIRECTORY_PATH常用的值有tnsnames,hostname,onames和ezconnect和ldap,cds,nis不常用的值,默认值是(tnsnames,onames,hostname)。
如果设置NAMES.DIRECTORY_PATH=(tnsnames),那么客户端就只会从tnsnames.ora查找你要连接的字符串(如orcl)记录,如果tnsname.ora文件中没有此记录,则连接不上数据库。
如果设置NAMES.DIRECTORY_PATH=(tnsnames,hostname),那么客户端首先会从tnsnames.ora查找你要连接的字符串(如orcl)记录,如果tnsname.ora文件中没有此记录,则尝试把你要连接的字符串(如orcl)当作一个主机名,通过网络的途径去解析它的ip地址然后去连接这个ip上GLOBAL_DBNAME=连接字符串(如orcl)这个实例,当然这里连接字符串(如orcl)并不是一个主机名,最后会尝试以ezconnect的方式连接数据库。
NAMES.DIRECTORY_PATH= (TNSNAMES,ezconnect)
$ sqlplus scott/tiger@orcl
$ sqlplus scott/tiger@//service_IP(or hostname):1521/orcl
例如sqlnet.ora配置如下:
则可以同时支持如下格式的访问:
当然采用第一种格式时需要正确配置
tnsnames.ora,因为sqlplus需要在这里匹配IP地址、端口、服务名等参数(见上一博文)