【问题标题】:Get schema(user) name from database从数据库中获取模式(用户)名称
【发布时间】:2012-07-24 18:59:37
【问题描述】:

如何使用 select 语句从数据库中查找架构(用户)名称,或者是否有可用的内置函数?

我正在使用以下包来编译架构中的所有无效对象,因此我想使用返回架构名称的 select 语句或函数,而不是硬编码架构名称。

DBMS_UTILITY.compile_schema('SCOTT');

谢谢

【问题讨论】:

    标签: sql database oracle10g


    【解决方案1】:

    我猜,USER 系统变量将对应您需要的内容,如果“我的架构”对应于“我的用户”,what it usually does

    declare
      u varchar2(100);
    begin
      select user into u from dual;
      DBMS_UTILITY.compile_schema(u);
    end;
    

    或者没有 PL/SQL 块

    DBMS_UTILITY.compile_schema(user);
    

    【讨论】:

    • 不需要 PL/SQL 块:DBMS_UTILITY.compile_schema(user); 应该可以正常工作
    • @a_horse_with_no_name:更新
    【解决方案2】:

    Oracle DB 中的模式是用户,所以如果你想获取所有模式,你需要使用 dba_users 表:

    SELECT USERNAME
    FROM DBA_USERS;
    

    请记住,这是一个系统表,因此需要适当的用户授权。

    如果需要当前用户,可以使用 USER_USERS 视图。请参阅here 了解更多信息。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 2011-12-03
      相关资源
      最近更新 更多