2015-03-02 59 views

回答

2

架構和用戶在Oracle中有些同義。

如果要列出了所有的過程和函數在一個特定的模式,那麼查詢:

  1. USER_OBJECTS:如果您登錄的用戶,您要查詢的對象列表。
  2. all_objects:您需要篩選所有者

例如,

 
SELECT * 
    FROM user_objects 
WHERE object_type 
    IN('FUNCTION', 'PROCEDURE'); 

或者,

 
SELECT * 
    FROM ALL_OBJECTS 
WHERE OBJECT_TYPE 
    IN ('FUNCTION','PROCEDURE') 
AND OWNER = 'your_schema_name'; 

確保你通過在大寫所需的值。

UPDATE

從這裏http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2025.htm文檔,

ALL_PROCEDURES

ALL_PROCEDURES列出了所有的功能和程序, 相關屬性一起。例如,ALL_PROCEDURES指示 函數是否是流水線,並行啓用或聚合 函數。如果函數是流水線或聚合函數,則還會標識關聯的實現類型(如果有)。

因此,您也可以按照文檔使用user_procedures視圖。

注意

請注意有關*_procedures幾件事情。您需要注意過程是獨立的還是包裝在包裝內。我已經寫了基於此相同的文章Unable to find procedure in DBA_PROCEDURES view

2

如果你想查找的,那麼所有程序列表 -

SELECT * FROM ALL_PROCEDURES WHERE OWNER = 'SCHEMA1'; 

當然,這假設你有權限查看的過程/函數/包SCHEMA1。

然而,如果您有DBA權限,那麼你也可以這樣做 -

SELECT * from DBA_PROCEDURES WHERE OWNER = 'SCHEMA1'; 

如果你想在程序中的代碼再看看ALL_SOURCE或DBA_SOURCE。

0

收到這樣的信息,最好的辦法:在爲SYSDBA

  • 查詢dba_source
  • SQL

    1. 登錄:

      select distinct NAME from dba_source 
      where TYPE in ('FUNCTION','PROCEDURE') 
      and OWNER = 'SCHEMA_NAME'; 
      
    相關問題