我的机器装的是Oracle客户端,tnsname.ora内容如下:MELIL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.160.10.39)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ORCL)
    )
  )
然后我用命令行的方式访问sqlplus,键入sqlplus melil/melil@melil
能正常连接数据库。但,
我的困惑就是,SERVICE_NAME明明是"ORCL",可命令行的最后为什么会是"@melil"呢?
如果说"ORCL"代表的是服务名的话,那么melil又代表什么呢?数据库名吗?
那么,服务名与数据库名之间的关系又是什么?
一个客户端可以对应多个服务吗?请高手解答

解决方案 »

  1.   

    MELIL =
      (DESCRIPTION =这里的MELIL是连接描述符,你可以随便取。ORACLE是这么解释它的:
    connect_descriptor is the description of the object to connect to as specified when creating the database link, such as tg4sybs. 
      

  2.   

    SERVICE_NAME = ORCL 是服务名也就是实例名称一个客户端可以对应多个数据库和服务
      

  3.   

    你要明白sqlplus melil/melil@melil语句的意思。
    sqlplus 登陆用户名/密码@网络服务名;
    @后的是网络服务名,而不是数据库实例名称。