【问题标题】:How can i list schemas names from a database on Oracle and SQLServer?如何从 Oracle 和 SQL Server 上的数据库中列出模式名称?
【发布时间】:2021-09-05 05:14:43
【问题描述】:

我可以使用 PostgreSQL 列出架构名称,例如使用查询:

select schema_name from information_schema.schemata

什么查询对于 Oracle 和 SQLServer 是等效的?非常感谢!

【问题讨论】:

  • Oracle 中没有information_schema
  • @a_horse_with_no_name 我肯定在至少一个 Oracle 安装中使用过 INFORMATION_SCHEMA。但是,还有其他几个我找不到/使用它的地方,所以我从不知道发生了什么(我对 Oracle 的了解几乎不如 SQL Server)。也许它只能作为附加包提供?
  • 不,information_schema 在 Oracle 中绝对不可用。也许您将它与 MySQL 混淆了?或者您组织中的某个人手动编写了视图。
  • 不,这绝对是在我工作了一年多的大型 Oracle11g 客户安装上。也许他们的一位公司 DBA 安装了类似this 的东西?我在一家大型公司的一个小部门工作,该公司已经预先打包了公司标准安装,所以这可能是他们为他们的通用管理工具强制要求的东西。
  • 这能回答你的问题吗? Oracle equivalent of information_schema.tables

标签: sql sql-server oracle


【解决方案1】:

理论上,这在 Oracle 和 SQL Server 上的工作方式应该与在 Postgres 上的工作方式相同。我知道它可以在 SQL Server 上运行,但是在 Oracle 上,我隐约记得有一些技巧或设置可以访问(或启用?)INFORMATION_SCHEMA 表。

Oracle 和 SQL Server 也都有自己的自定义系统表/视图,用于此类内容(我认为,sys.schemas 用于 SQL Server,dba_users 用于 Oracle)。 SQL Server 将 Schemas 和 Users 视为独立对象(用户可以拥有 Schemas),而 Oracle 将它们视为同一对象的不同属性/特征(User == Schema),我不确定 Postgres 是如何做到的。

此外,SQL Server 和 Oracle 都会对您没有权限查看的对象应用安全“隐藏”,即使是通过INFORMATION_SCHEMA。因此,如果您不应该能够“查看”某个模式,那么它也不会出现在 INFORMATION_SCHEMA.SCHEMATA 表中。但是,在许多情况下,即使您不被允许访问对象本身(取决于安全设置),您也可以像这样查看元数据。

【讨论】:

  • 对于 Postgres,用户和模式是两个非常不同的东西
【解决方案2】:

使用 SQLdeveloper 或 SQL developer 连接到数据库,然后运行以下查询以获取架构详细信息

选择 * FROM dba_users

【讨论】:

  • “使用 SQLdeveloper 或 SQL developer 连接数据库” 嗯。 “SQLdeveloper”和“SQL developer”有什么区别?如何选择使用哪一种?
【解决方案3】:

从甲骨文开始:

SQL> connect sys as sysdba
Enter password:
Connected.
SQL> select * from all_users;

USERNAME                          USER_ID CREATED
------------------------------ ---------- --------
XS$NULL                        2147483638 29.05.14
MIKE                                   50 08.03.21
SCOTT                                  48 26.12.20
APEX_040000                            47 29.05.14
APEX_PUBLIC_USER                       45 29.05.14
FLOWS_FILES                            44 29.05.14
<snip>

不了解 MS SQL Server。

【讨论】:

    猜你喜欢
    • 2014-09-29
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    相关资源
    最近更新 更多