查询ORACLE数据库名

新建了一个ORACLE数据库,用select * from v$instance查询,为什么查询不到呢?

  查询ORACLE数据库名:SQL> select name from v$database。
  查看实例名:SQL> select instance_name from v$instance。
  数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。
  数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据;多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-13
首先要看你是什么操作系统,什么数据库版本,以linux 11gR2为例
1 怎么查询所有的数据库名呢?
A: 进入到 $ORACLE_HOME/dbs目录下,看看有多少init开头的.ora结尾的文件,比如
$ ll init*.ora
-rw-r--r-- 1 oracle dba 2851 May 15 2009 init.ora
-rw-r--r-- 1 oracle dba 1441 Jun 22 13:31 initPSTBY.ora
-rw-r--r-- 1 oracle dba 1987 Jun 19 16:28 initR11203.ora
-rw-r--r-- 1 oracle dba 1957 May 24 13:06 initWilliam.ora
除了init.ora不算,其它每一个就代表一个数据库,中间部分是数据库名字,我这个机器上就有3个
还可以用 ps -ef|grep smon 来看现在有多少启动的数据库。

2 又怎么登陆进去呢?
A: 首先设置环境变量
export ORACLE_SID=R11203
然后再用sqlplus 正常登陆就行了

另外,如果是windows 环境,查看有多少OracleService开头的服务就行了。本回答被提问者和网友采纳
第2个回答  2012-07-13
你好,一般只能查到当前打开的数据库,这语句其实查的是数据库的实例信息。追问

那应该怎么查询所有的数据库名呢?又怎么登陆进去呢?

第3个回答  2012-07-13
select count(*) from v$session 试试这个
第4个回答  2012-07-13
什么现象,是你没有权限呢,还是返回0行?

如果没有权限,那你用什么用户登录的?追问

ORACLE中原来共有2个数据库,然后今天又新建了一个,可今天查询就只有一个oral,其余的2个都没有

追答

v$instance只是查询当前实例的状态

应该是不显示其他实例吧

追问

那应该怎么查询所有的数据库名呢?又怎么登陆进去呢?

追答

Oracle一般应用中,不建立多个数据库的。

你可以通过
sqlplus user/pwd@本地网络服务名
进行登录

本地网络服务名 就是你配置的 tnsnames.ora中的信息,其中包括数据库的实例名称

相似回答