如何使用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