2011-07-29 77 views
0

有沒有辦法在SQLPLUS中獲取有關某些軟件包創建時的信息以及所有這些信息。例如,如果有包名稱Pack_Employee ..我如何獲得創建日期,大小等Sql Plus軟件包信息

回答

2

使用ALL_OBJECTS或USER_OBJECTS表來描述當前用戶可訪問的所有對象。 ;

甲骨文參考文檔

  • ALL_OBJECTS

    選擇OBJECT_NAME,object_type的,last_ddl_time,時間戳,狀態,從USER_OBJECTS 其中OBJECT_NAME IN( 'Pack_Employee')創建

+2

這裏只是一個潛在的疑難雜症:通常在Oracle對象與上創建除非在創建對象時通過使用雙引號進行明確設置。通常情況下,應該以大寫形式引用object_name,否則以大寫形式進行比較:** WHERE UPPER(object_name)='PACK_EMPLOYEE'; ** – DCookie

0

正如@喬爾指出的那樣,你可以創建日期,最後DDL日期和狀態從ALL_OBJECTS。但是,大小是一個更棘手的問題。我能想出的大小最好近似是讓源的每一行,這將給你在字符的大小長度:

SELECT SUM(LENGTH(text)) as char_size, COUNT(*) as line_count 
FROM all_source s 
WHERE name = 'YOUR_PACKAGE' AND TYPE = 'PACKAGE BODY' AND owner = 'YOU'; 
+0

您可以使用數據字典視圖USER_OBJECT_SIZE來確定PL/SQL對象的大小? http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_4376.htm#sthref2263 –

+0

@carpenteri:這實際上取決於你在此上下文中的「大小」是什麼意思。至少在某些情況下,USER_OBJECT_SIZE的'source_size'列與我上面查詢的結果完全相同。另外,'USER_OBJECT_SIZE'需要花費相當長的時間才能運行,所以它可能不是您想要經常訪問的視圖。 – Allan