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

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

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

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

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

也许你可以使用这个观点,但我不确定。

 select * from v$database; 

但是我认为它只会显示关于当前数据库的信息。

其他选项,如果数据库在Linux中运行…应该是这样的:

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

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 

我不清楚它,但通常一台服务器有一个数据库(与许多用户),如果您创build多个数据库意味着您创build许多实例,侦听器…以及。 所以你可以检查你的LISTENER来识别它。

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

 lsnrctl status 

….

LISTENER的状态

…..

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

服务总结…

服务“dbtest”有1个实例。

实例“dbtest”,状态READY,有1个处理程序(s)这个服务…

服务“dbtest1XDB”有1个实例。

实例“dbtest1”,状态READY,有1个处理程序(s)为这个服务…

服务“dbtest_1”有1个实例。

实例“dbtest1”,状态READY,有1个处理程序(s)这个服务…命令成功完成