如何使用select语句从数据库中查找模式(用户)名称,或者是否有可用的内置函数?
我使用以下包来编译模式中的所有无效对象,因此我想使用一个返回模式名称的select语句或函数来代替硬编码模式名称。
DBMS_UTILITY.compile_schema('SCOTT');
由于
答案 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。
希望这有帮助!