从数据库中获取模式(用户)名称

时间:2012-07-24 07:55:23

标签: sql database oracle10g

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

我使用以下包来编译模式中的所有无效对象,因此我想使用一个返回模式名称的select语句或函数来代替硬编码模式名称。

DBMS_UTILITY.compile_schema('SCOTT');

由于

2 个答案:

答案 0 :(得分:2)

我想,如果“我的架构”对应于“我的用户”,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);

答案 1 :(得分:0)

Oracle DB中的模式是用户,因此如果您想要使用所有模式,则需要使用dba_users表:

SELECT USERNAME
FROM DBA_USERS;

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

如果您需要当前用户,则可以使用USER_USERS视图。有关详细信息,请参阅here

希望这有帮助!