sqlplus icmadmin/password@dbname

这种方式使用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

Leave a Reply