【问题标题】:What does the "sys" prefix mean in the following?下面的“sys”前缀是什么意思?
【发布时间】:2010-10-15 09:13:50
【问题描述】:
 select sys.database_name,sys.sysevent,sys.login_user from dual;

这个查询中的 sys 是什么?


我可以查看 sys 中的其他功能吗?
这样做的查询是什么?
这个系统在什么情况下有用?
关于 sys 的信息将存储在数据库中的什么位置?

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    sys 是系统架构。它包含支持 rdbms 的各种表和视图。

    您可以查看有关各种模式及其含义的 oracle wiki 文章。

    http://en.wikipedia.org/wiki/Oracle_database

    【讨论】:

    【解决方案2】:

    在许多数据库系统中,包括来自 Oracle、Microsoft 和 Sybase 的主要数据库产品,相关的数据库表组可以被拉到一个模式中。

    一些大型系统(以及一些不是那么大的系统)将其用作控制访问的一种方式,或者只是作为一种使事情井井有条的方式。

    例如,支持在线目录(例如 Amazon 或 Barnes & Nobel)的表格可能都是 Marketing.*,围绕订单履行的表格 Sales.* 和围绕库存管理的表格 Stock.*

    您注意到的sys 架构是系统表所在的位置 - 您可以查询这些表以了解有关数据库其余部分的详细信息 - 例如列是否已存在。

    【讨论】:

      【解决方案3】:

      我同意贝文的观点。以下是针对您的问题的一些具体答案:

      (我会假设你在谈论 Oracle)

      我可以看看其他功能吗? 在系统中?

      是的,与任何架构一样,您可以使用 Toad、PLSQL Developer 或 Oracle SQL Developer 等数据库开发工具查看 sys 中的过程、函数和包。然而,我的经验表明,参考 Oracle 文档(在线免费提供)比直接跳到源代码更好地了解可用功能。

      这样做的查询是什么?

      我建议使用上述开发工具之一。如果做不到,请尝试:

      select * from user_objects where type in ('PACKAGE', 'PROCEDURE', 'FUNCTION');
      

      一旦您找到了您正在寻找的功能,请使用 SQLPlus 中的 DESCRIBE 命令来确定方法签名和数据类型。

      这个系统在什么情况下有用?

      SYS 最常被用作管理任务的超级用户,因为它比普通模式拥有更多权限。 SYS 还包含许多 Oracle 所依赖的基础架构 - 不要乱用 SYS 拥有的对象。

      关于 sys 的信息将存储在数据库中的什么位置?

      使用我上面建议的方法 - 但我建议您阅读在线文档,而不是直接深入研究源代码。

      【讨论】:

      • 请注意,查询 USER_OBJECTS 只会返回当前登录用户拥有的对象。如果您以 SYS 身份登录,那么 USER_OBJECTS 会有所帮助;否则,您需要查询 DBA_OBJECTS 或 ALL_OBJECTS 以获得 SYS 拥有的对象。
      猜你喜欢
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      相关资源
      最近更新 更多