在用sqlplus连数据库时,一般格式都为sqlplus usr/pwd@sid,但是我现在的情况是,连数据库时不能带sid,即只能sqlplus usr/pwd,带了sid反而连接不了,为什么?sqlplus,sid

解决方案 »

  1.   

    @sid是你配置的监听名称,看你是否配置了对应的监听名,或者之间连接你本地的实例名:@orcl这样的
      

  2.   

    我设置了环境变量ORACLE_SID,但问题是,我用sqlplus user/password能连上,用sqlplus user/password@SERVICE_NAME反而连不上,这是为什么??
      

  3.   

    sqlplus user/password@SERVICE_NAME 这种方式属于远程连接需要配置对应的监听
    sqlplus user/password 这种方式只能连接本地的,所以不需要走监听
      

  4.   

    看一下你的tnsnames.ora文件里面配置的是什么?
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = fulanLYL)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
      

  5.   

    你在oracle服务端敲的还是客户端上敲的
      

  6.   

    我之前就是连本地的,用的sqlplus user/password@SERVICE_NAME 。我觉得不加@SERVICE_NAME对,可以理解,但是加了反而不对不能理解。
      

  7.   

    看一下你的tnsnames.ora文件里面配置的是什么?
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = fulanLYL)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    SERVICE_NAME 和环境变量ORACLE_ID一样,都是我使用的@后面的sid。
      

  8.   

    应该是客户端吧,这怎么看?oracle是系统管理员装的,我在自己的用户下使用数据库的,操作系统是aix。
      

  9.   

    重点查环境变量ORACLE_SID与tnsnames.ora文件的连接串设置问题。