1

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

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

DBMS_UTILITY.compile_schema('SCOTT');

谢谢

4

2 回答 2

2

我想,USER系统变量将对应于您需要的,如果“我的模式”对应于“我的用户”,它通常会做什么

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

或者没有 PL/SQL 块

DBMS_UTILITY.compile_schema(user);
于 2012-07-24T07:59:00.747 回答
0

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

SELECT USERNAME
FROM DBA_USERS;

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

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

希望这可以帮助!

于 2012-07-24T08:00:47.863 回答