如何使用SQL * Plus在Oracle 11g中显示数据库

时间:2010-06-09 08:32:42

标签: oracle oracle11g sqlplus

借助此命令 show databases; ,我可以在 MySQL 中看到数据库。

如何在 Oracle 中显示可用的数据库?

5 个答案:

答案 0 :(得分:71)

SELECT NAME FROM v$database;显示oracle中的数据库名称

答案 1 :(得分:46)

您可以将MySQL“数据库”视为Oracle中的架构/用户。如果您具有权限,则可以查询DBA_USERS视图以查看模式列表。

答案 2 :(得分:19)

Oracle没有像MySQL或MS SQL Server这样的简单数据库模型。我发现最接近的是查询表空间及其中的相应用户。

例如,我有一个DEV_DB表空间,包含我所有的实际数据库'在他们内:

SQL> SELECT TABLESPACE_NAME FROM USER_TABLESPACES;

导致:

SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
EXAMPLE
DEV_DB

还可以在所有表​​空间中查询用户:

SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS;

或者在特定的表空间内(以我的DEV_DB表空间为例):

SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS where DEFAULT_TABLESPACE = 'DEV_DB';

ROLES DEV_DB
DATAWARE DEV_DB
DATAMART DEV_DB
STAGING DEV_DB

答案 3 :(得分:14)

也许您可以使用此视图,但我不确定。

select * from v$database;

但我认为它只会向您显示有关当前数据库的信息。

其他选项,如果db在linux中运行......应该是这样的:

SQL>!grep SID $TNS_ADMIN/tnsnames.ora | grep -v PLSExtProc

答案 4 :(得分:1)

我不清楚它,但通常一个服务器有一个数据库(有很多用户),如果你创建了许多数据库意味着你创建了许多实例,监听器......。因此,您可以检查LISTENER以识别它。

在我的测试中,我创建了2个数据库(dbtestdbtest_1),所以当我检查我的LISTENER状态时,它看起来像这样:

lsnrctl status
  

...

     

LISTENER的状态

     

.....

     

(DESCRIPTION =(ADDRESS =(PROTOCOL = tcp)(HOST = 10.10.20.20)(PORT = 1521)))

     

服务摘要......

     

服务" dbtest"有一个实例。

     

实例" dbtest",状态READY,有1个此服务的处理程序...

     

服务" dbtest1XDB"有一个实例。

     

实例" dbtest1",状态READY,有1个此服务的处理程序......

     

服务" dbtest_1"有一个实例。

     

实例" dbtest1",状态READY,有1个此服务的处理程序...命令已成功完成