我想查看当前数据库的SID,网上搜了贴子说select instance_name from v$instance;但是我这却提示表或视图不存在,为什么啊,求教

解决方案 »

  1.   


    不过如果数据库咩有启动的话,应该查询提示里Oracle is not available。也不会提示视图不在哟检查一下你的表名写的对不对。
      

  2.   

    就是 v$instance 啊。没输错就是提示不存在晕 oracle 10g而且它能正常工作,比如查表改表之类的
      

  3.   

    SQL> select instance_name from v$instance;INSTANCE_NAME
    ----------------
    orclSQL>
    楼主你以什么用户登录的呀
    不是每个人都可以看到这个视图的哦
      

  4.   

    SQL> conn scott/tiger
    Connected.
    SQL> select instance_name from v$instance;
    select instance_name from v$instance
                              *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    SQL>
      

  5.   

    没有权限,用sys用户登录吧。
      

  6.   

    grant dba to scott然后再用scott登录进去查询就有了
      

  7.   


    没有权限啊,你用sysdba模式登陆吧!
      

  8.   

    当前用户权限不足导致的。
    ---------------
    解决方法:conn / as sysdba;
    grant select on v_$instance to YourUser;然后再以YourUser登录查看即可。
      

  9.   

    如果你的sid和库名相同,那么你可以使用系统定义的事件属性得到库名,只需要你有create session权限就行SQL> show user                                                                             
    USER 为 "TEST01"
    SQL> select ora_database_name from dual;                                                   ORA_DATABASE_NAME
    ------------------------------------------------------------------------------------------------------------------------
    TOMSSQL> select * from session_privs;                                                          PRIVILEGE
    ----------------------------------------
    CREATE SESSION
      

  10.   

    在windows的服务中找到oracleserviceSID的服务,这个SID就是你的服务名