如何使用select语句从数据库中查找模式(用户)名称,或者是否存在可用的内置函数?从数据库获取模式(用户)名称
我正在使用下面的软件包编译我的模式中的所有无效对象,所以我不想使用硬编码模式名称,而是使用返回模式名称的select语句或函数。
DBMS_UTILITY.compile_schema('SCOTT');
感谢
如何使用select语句从数据库中查找模式(用户)名称,或者是否存在可用的内置函数?从数据库获取模式(用户)名称
我正在使用下面的软件包编译我的模式中的所有无效对象,所以我不想使用硬编码模式名称,而是使用返回模式名称的select语句或函数。
DBMS_UTILITY.compile_schema('SCOTT');
感谢
我想,在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);
Oracle DB中的模式是用户,所以如果你想利用你需要使用DBA_USERS表中的所有模式:
SELECT USERNAME
FROM DBA_USERS;
请记住,这是一个系统表,所以适当的用户授予是必要的。
如果您需要当前用户,则可以使用USER_USERS视图。有关更多信息,请参阅here。
希望这会有所帮助!
谢谢,这真的很有帮助。 – user75ponic 2012-07-24 08:14:24
不需要PL/SQL块:'DBMS_UTILITY.compile_schema(user);'应该可以正常工作 – 2012-07-24 10:55:32
@a_horse_with_no_name:已更新 – 2012-07-24 10:59:34