用于列出数据库中所有模式的 Oracle SQL 查询
我想删除 Oracle DB 上一些未使用的模式。
如何查询所有架构名称?
I wanted to delete some unused schemas on our oracle DB.
How can I query for all schema names ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
使用 sqlplus
sqlplus / as sysdba
运行:
如果您只想要用户名,请执行以下操作:
Using sqlplus
sqlplus / as sysdba
run:
Should you only want the usernames do the following:
最有可能的是,您希望
这将向您显示系统中的所有用户(以及所有潜在的模式)。如果您对“模式”的定义允许模式为空,那么这就是您想要的。但是,可能存在语义区别,即人们只想将某事物称为模式(如果它实际上拥有至少一个对象),以便排除数百个永远不会拥有任何对象的用户帐户。在这种情况下,
假设创建模式的人对于分配默认表空间是明智的,并且假设您对 Oracle 提供的模式不感兴趣,则可以通过在
default_tablespace
上添加谓词来过滤掉这些模式,即或者,
遇到系统中有人错误地为非系统用户提供
default_tablespace
为SYSTEM
的情况并不少见,因此请确保之前的假设成立尝试以这种方式过滤掉 Oracle 提供的模式。Most likely, you want
That will show you all the users in the system (and thus all the potential schemas). If your definition of "schema" allows for a schema to be empty, that's what you want. However, there can be a semantic distinction where people only want to call something a schema if it actually owns at least one object so that the hundreds of user accounts that will never own any objects are excluded. In that case
Assuming that whoever created the schemas was sensible about assigning default tablespaces and assuming that you are not interested in schemas that Oracle has delivered, you can filter out those schemas by adding predicates on the
default_tablespace
, i.e.or
It is not terribly uncommon to come across a system where someone has incorrectly given a non-system user a
default_tablespace
ofSYSTEM
, though, so be certain that the assumptions hold before trying to filter out the Oracle-delivered schemas this way.下面的sql列出了oracle中安装后创建的所有schema
ORACLE_MAINTAINED='N' 是过滤器。此列是 12c 中的新增内容。
Below sql lists all the schema in oracle that are created after installation
ORACLE_MAINTAINED='N' is the filter. This column is new in 12c.
怎么样:
它将返回所有用户/模式的列表、他们的 ID 和在数据库中创建的日期:
How about :
it will return list of all users/schemas, their ID's and date created in DB :
以下任一 SQL 将返回 Oracle DB 中的所有模式。
从 all_tables 中按所有者分组选择所有者;
从 all_tables 中选择不同的所有者;
Either of the following SQL will return all schema in Oracle DB.
select owner FROM all_tables group by owner;
select distinct owner FROM all_tables;
如果您想搜索架构名称,那么
如果您想搜索特定表,那么 -
IF YOU WANT TO SEARCH FOR THE SCHEMA NAME THEN
iF YOU WANT TO SEARCH FOR PERTICULAR TABLE THEN -