2012-07-24 63 views
1

如何使用select語句從數據庫中查找模式(用戶)名稱,或者是否存在可用的內置函數?從數據庫獲取模式(用戶)名稱

我正在使用下面的軟件包編譯我的模式中的所有無效對象,所以我不想使用硬編碼模式名稱,而是使用返回模式名稱的select語句或函數。

DBMS_UTILITY.compile_schema('SCOTT'); 

感謝

回答

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); 
+0

謝謝,這真的很有幫助。 – user75ponic 2012-07-24 08:14:24

+0

不需要PL/SQL塊:'DBMS_UTILITY.compile_schema(user);'應該可以正常工作 – 2012-07-24 10:55:32

+0

@a_horse_with_no_name:已更新 – 2012-07-24 10:59:34

0

Oracle DB中的模式是用戶,所以如果你想利用你需要使用DBA_USERS表中的所有模式:

SELECT USERNAME 
FROM DBA_USERS; 

請記住,這是一個系統表,所以適當的用戶授予是必要的。

如果您需要當前用戶,則可以使用USER_USERS視圖。有關更多信息,請參閱here

希望這會有所幫助!

相關問題