Oracle 查詢某一個包體’PACKAGE BODY‘中包含PROCEDURE/FUNCTION的名稱有哪些
標題:Oracle 查詢某一個包體’PACKAGE BODY‘中包含PROCEDURE/FUNCTION的名稱有哪些
作者:lōττéry©版權所有[文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任.]
需求:
客戶需要統計下某環境中包體’PACKAGE BODY‘中包含PROCEDURE/FUNCTION的名稱有哪些
例如:’PACKAGE BODY‘ 名稱PKG_B,包含一個PT_1'PROCEDURE'和FN_1‘FUNCTION’
需要顯示結果
OWNER |
OBJECT_NAME |
OBJECT_TYPE |
TYPE |
PROCEDURE# |
PROCEDURENAME |
LOTTERY |
PGK_ES |
PACKAGE |
PROCEDURE |
1 |
PT_1 |
LOTTERY |
PGK_ES |
PACKAGE |
FUNCTION |
2 |
FN_1 |
註釋:包和包體一一對應;
查詢SQL:
SELECT O.OWNER 物件所屬者,
O.OBJECT_NAME 包名,
--O.OBJECT_TYPE ,
( CASE
WHEN S.PROPERTIES = 27131904 THEN
'FUNCTION'
WHEN S.PROPERTIES = 29229056 THEN
'PROCEDURE'
ELSE
TO_CHAR(S.PROPERTIES)
END ) 包體下物件型別,
/*本人環境 PROPERTIES值代表意義
27131904==>FUNCTION;
29229056==>PROCEDURE;
沒確定PROPERTIES ==> 29229056、27131904 2值依據哪裡查到的.該部分需要根據環境情況哈~*/
S.PROCEDURE# 物件順序,
S.PROCEDURENAME 物件名稱
FROM SYS.PROCEDUREINFO$ S --所有儲存(包括PACKAGE裡的PROCEDURE/FUNCTION...)
JOIN DBA_OBJECTS O
ON O.OBJECT_ID = S.OBJ#
AND O.OWNER = 'LOTTERY'
AND O.OBJECT_TYPE = 'PACKAGE' -- 物件型別為PACKAGE包
ORDER BY O.OBJECT_NAME, S.PROCEDURE#;
註釋:
--PROCEDUREINFO$基表(普通堆表)用於存放獨立的或程式包中PROCEDURE或FUNCTION的詳細資訊,包括NAME名字和屬性
本文只針對OBJECT_TYPE = PACKAGE,若想顯示某使用者下所有PROCEDURE物件有哪些
可以選擇如下方式..等
1)本文SQL的將AND O.OBJECT_TYPE = 'PACKAGE'改為 AND O.OBJECT_TYPE = 'PROCEDURE'
2)查詢‘USER_OBJECTS’ SQL:SELECT * FROM USER_OBJECTS O WHERE O.OBJECT_TYPE = 'PROCEDURE';
3)查詢‘USER_SOURCE’ SQL:SELECT * FROM USER_SOURCE O WHERE O.TYPE = 'PROCEDURE';
祝好~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28602568/viewspace-1267884/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORA-04042 procedure, function, package, or package body does not existFunctionPackage
- oracle中的某一個使用者名稱修改Oracle
- Oracle 過程(Procedure)、函式(Function)、包(Package)、觸發器(Trigger)Oracle函式FunctionPackage觸發器
- Oracle procedure,package,function,triger 閃回 恢復OraclePackageFunction
- 包頭(Package)與包體(Package body)的學習與應用Package
- 查詢已經刪除的procedure,view,functionViewFunction
- 觸發器trigger中呼叫包package(包中含:儲存過程procedure及函式function)_plsql觸發器Package儲存過程函式FunctionSQL
- Atitit.軟體名稱空間 包的命名統計 及命名錶(2000個名稱) 方案java package...JavaPackage
- oracle plsql package_body_procedure_構建語法_sp_儲存過程OracleSQLPackage儲存過程
- Orale的struct,array,cursor,stored procedure,function,package的用法例子StructFunctionPackage
- Package Specification 和 Package Body 及 Package有什麼區別? (轉)Package
- 查詢跟蹤檔名稱
- Linux裝置名稱的查詢Linux
- alter package/procedurePackage
- plsql中的procedure和function程式設計SQLFunction程式設計
- go package包名規範GoPackage
- package-make 新增自定義包的名稱空間和生成路徑Package
- mysql之查詢使用者名稱MySql
- Linux中查詢最大檔案的方法有哪些?Linux
- Oracle體系結構之-Oracle中各種名稱Oracle
- 為什麼"JavaScript"名稱中包含"Java"單詞?JavaScript
- oracle trace檔名查詢Oracle
- 如何在 Arch Linux 中查詢已安裝的專有軟體包?Linux
- Linux中軟體包安裝、查詢用哪個命令?Linux
- oracle 查詢所有表的表名Oracle
- 查詢自己機子上是否有某一Perl模組
- 揭秘PostgreSQL:如何查詢表欄位名稱SQL
- python怎麼查詢字串中是否包含某個字串Python字串
- mongodb查詢資料庫中某個欄位中的值包含某個字串的方法MongoDB資料庫字串
- 應用市場中包名(package name)的唯一性Package
- 查詢某個儲存過程有哪些內容儲存過程
- 檢視包正在被哪個程式使用,檢視包含SQL語句的PACKAGESQLPackage
- package鎖的查詢與解鎖Package
- sql中查詢目錄中的檔名SQL
- 有哪些命令列的軟體堪稱神器?命令列
- 開源軟體名稱中的故事
- Python中名稱空間包簡介Python
- Linux中查詢賬號資訊的命令有哪些?建議收藏!Linux