这种方式使用local naming service 连接数据库。也就是读取tnsnames.ora来连接。
ICMNLSDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = icmnlsdb.cn.ibm.com)
)
)
这个时候,
sqlplus icmadmin/fvt6eip@ICMNLSDB
sqlplus icmadmin/fvt6eip@icmnlsdb
都能连上数据库,也就是说 dbname 本身对大小写不敏感,并且这个值可以随便改。
SERVICE_NAME = icmnlsdb.cn.ibm.com 与 listener.org 里面 的GLOBAL_DBNAME必须一致。
(SID_DESC =
(GLOBAL_DBNAME = icmnlsdb.cn.ibm.com)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = icmnlsdb)
)
使用ezconnect佐证以上内容,
1.sqlplus icmadmin/fvt6eip@//localhost:1521/icmnlsdb.cn.ibm.com 连接成功。
2.sqlplus icmadmin/fvt6eip@//localhost:1521/icmnlsdb 连接失败。
oracle@linux:/u01/app/oracle/product/10.2.0/db_1/network/admin> sqlplus icmadmin/fvt6eip@//localhost:1521/icmnlsdb
SQL*Plus: Release 10.2.0.3.0 – Production on Sun May 4 09:30:33 2008
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor