oracle怎么查看数据库名

哈,我一次又一次地经历了这个 Oracle 数据库陷阱。
有一年我帮助一家公司迁移系统;数据库会记住 Oracle。
我必须查找确切的数据库名称并且非常困惑。

直接检查。
使用 v$database 视图从 v$database 中选择名称;当他看到结果时,天哪,数据库名是个陌生的名字,和系统上看到的不一样。
系统内姓名均为化名;真是令人困惑。

然后我使用了SQLPlus命令行。
连接数据库后;我尝试了 SELECT name FROM v$database ,结果是一样的。
他甚至没有咒骂。
但我记得还有SHOW PARAMETER db_name。
我尝试了一下。
嘿,这次我是对的。
终于数据库名称出来了。

后来我使用了SQL Developer,当我看到它时我可以清楚地看到眼前的数据库名称,我很高兴。
随后,我使用 JavaAPI 通过 JDBC 进行连接并调用 OracleConnection.getDatabaseName() 方法。
这次连代码都出来了,感觉技术上又向前迈进了一步。

最好笑的是,当时权限不够。
我必须检查 DBA_USERS 或 USER_USERS 视图。
这让我意识到许可真的很重要。

在许多租户环境中;我必须连接到根容器(CDB)才能查找全局数据库名称。
此外,SHOWUSER该命令显示当前用户,而不是数据库名称;所以一定要注意不要误用。

人们对这个 Oracle 数据库真是又爱又恨。
但现在想来,克服这些困难,推进技术也算是一种收获。

“oracle”怎么查看当前数据库的名称?

直接使用conn/as sysdba登录,执行select instance_name from V$instance; 您可以快速获取实例名称。