Tôi có thể lấy tên của tất cả các chức năng bên trong một gói hay không. Giả sử tôi có một gói PKG_OWA và tôi muốn liệt kê tất cả các thủ tục bên trong gói.Cách lấy danh sách tất cả các thủ tục bên trong một gói oracle
Trả lời
Chế độ xem từ điển dữ liệu ALL_PROCEDURES (hoặc USER_PROCEDURES nếu bạn chỉ muốn gói của mình). Find out more.
select procedure_name
from all_procedures
where owner = 'YOU'
and object_name = 'YOUR_PACKAGE'
này liệt kê các thủ tục nào tiếp xúc trong đặc tả gói. Không có cách nào dễ dàng để lấy các thủ tục riêng tư (có nghĩa là, các quy trình được chỉ định trong thân gói) ngoại trừ bằng cách xử lý văn bản nguồn. Oracle cung cấp một tiện ích PL/SCOPE mà chúng ta có thể sử dụng để thu thập thông tin này, nhưng nó đòi hỏi chúng ta thay đổi các thiết lập phiên và biên dịch lại mã của chúng ta, vì vậy nó có thể không phù hợp trong mọi tình huống. Find out more.
Câu trả lời từ APC là trên dòng chính xác nhưng SQL cụ thể sẽ chỉ liệt kê các thủ tục thuộc sở hữu của 'BẠN' và cũng giống như cách chọn từ USER_PROCEDURES nhưng có thể gói trong schema khác
SQL> select * from all_procedures where owner='TEST';
OWNER OBJECT_NAME
------------------------------ ------------------------------
PROCEDURE_NAME AGG PIP IMPLTYPEOWNER
------------------------------ --- --- ------------------------------
IMPLTYPENAME PAR INT DET AUTHID
------------------------------ --- --- --- ------------
TEST TEST
NO NO
NO NO NO DEFINER
SQL> select * from user_procedures;
OBJECT_NAME PROCEDURE_NAME AGG PIP
------------------------------ ------------------------------ --- ---
IMPLTYPEOWNER IMPLTYPENAME PAR INT DET
------------------------------ ------------------------------ --- --- ---
AUTHID
------------
TEST NO NO
NO NO NO
Cũng lưu ý rằng khi bạn cấp và thu hồi thực thi trên một gói, thủ tục hoặc chức năng, chúng hiển thị trong bảng DBA_TAB_PRIVS (cùng một bảng như các đặc quyền chèn/cập nhật/xóa trên bảng)
Khi bạn đặt tên gói khi Oracle cung cấp DBMS, bạn cũng có thể sử dụng DESC để cung cấp danh sách các tham số và kiểu dự kiến .g.
SQL> desc dbms_lob
PROCEDURE APPEND
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB BLOB IN/OUT
SRC_LOB BLOB IN
PROCEDURE APPEND
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB CLOB IN/OUT
SRC_LOB CLOB IN
PROCEDURE CLOSE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
PROCEDURE CLOSE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
PROCEDURE CLOSE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN/OUT
FUNCTION COMPARE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_1 BLOB IN
LOB_2 BLOB IN
AMOUNT NUMBER(38) IN DEFAULT
OFFSET_1 NUMBER(38) IN DEFAULT
OFFSET_2 NUMBER(38) IN DEFAULT
FUNCTION COMPARE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_1 CLOB IN
LOB_2 CLOB IN
AMOUNT NUMBER(38) IN DEFAULT
OFFSET_1 NUMBER(38) IN DEFAULT
OFFSET_2 NUMBER(38) IN DEFAULT
FUNCTION COMPARE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_1 BINARY FILE LOB IN
FILE_2 BINARY FILE LOB IN
AMOUNT NUMBER(38) IN
OFFSET_1 NUMBER(38) IN DEFAULT
OFFSET_2 NUMBER(38) IN DEFAULT
PROCEDURE CONVERTTOBLOB
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB BLOB IN/OUT
SRC_CLOB CLOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN/OUT
SRC_OFFSET NUMBER(38) IN/OUT
BLOB_CSID NUMBER IN
LANG_CONTEXT NUMBER(38) IN/OUT
WARNING NUMBER(38) OUT
PROCEDURE CONVERTTOCLOB
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB CLOB IN/OUT
SRC_BLOB BLOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN/OUT
SRC_OFFSET NUMBER(38) IN/OUT
BLOB_CSID NUMBER IN
LANG_CONTEXT NUMBER(38) IN/OUT
WARNING NUMBER(38) OUT
PROCEDURE COPY
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB BLOB IN/OUT
SRC_LOB BLOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN DEFAULT
SRC_OFFSET NUMBER(38) IN DEFAULT
PROCEDURE COPY
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB CLOB IN/OUT
SRC_LOB CLOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN DEFAULT
SRC_OFFSET NUMBER(38) IN DEFAULT
PROCEDURE CREATETEMPORARY
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
CACHE BOOLEAN IN
DUR BINARY_INTEGER IN DEFAULT
PROCEDURE CREATETEMPORARY
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
CACHE BOOLEAN IN
DUR BINARY_INTEGER IN DEFAULT
PROCEDURE ERASE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
AMOUNT NUMBER(38) IN/OUT
OFFSET NUMBER(38) IN DEFAULT
PROCEDURE ERASE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
AMOUNT NUMBER(38) IN/OUT
OFFSET NUMBER(38) IN DEFAULT
PROCEDURE FILECLOSE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN/OUT
PROCEDURE FILECLOSEALL
FUNCTION FILEEXISTS RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
PROCEDURE FILEGETNAME
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
DIR_ALIAS VARCHAR2 OUT
FILENAME VARCHAR2 OUT
FUNCTION FILEISOPEN RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
PROCEDURE FILEOPEN
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN/OUT
OPEN_MODE BINARY_INTEGER IN DEFAULT
PROCEDURE FREETEMPORARY
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
PROCEDURE FREETEMPORARY
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
FUNCTION GETCHUNKSIZE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
FUNCTION GETCHUNKSIZE RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
FUNCTION GETLENGTH RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
FUNCTION GETLENGTH RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
FUNCTION GETLENGTH RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
FUNCTION GET_STORAGE_LIMIT RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
FUNCTION GET_STORAGE_LIMIT RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
FUNCTION INSTR RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
PATTERN RAW IN
OFFSET NUMBER(38) IN DEFAULT
NTH NUMBER(38) IN DEFAULT
FUNCTION INSTR RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
PATTERN VARCHAR2 IN
OFFSET NUMBER(38) IN DEFAULT
NTH NUMBER(38) IN DEFAULT
FUNCTION INSTR RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
PATTERN RAW IN
OFFSET NUMBER(38) IN DEFAULT
NTH NUMBER(38) IN DEFAULT
FUNCTION ISOPEN RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
FUNCTION ISOPEN RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
FUNCTION ISOPEN RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
FUNCTION ISTEMPORARY RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
FUNCTION ISTEMPORARY RETURNS NUMBER(38)
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
PROCEDURE LOADBLOBFROMFILE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB BLOB IN/OUT
SRC_BFILE BINARY FILE LOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN/OUT
SRC_OFFSET NUMBER(38) IN/OUT
PROCEDURE LOADCLOBFROMFILE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB CLOB IN/OUT
SRC_BFILE BINARY FILE LOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN/OUT
SRC_OFFSET NUMBER(38) IN/OUT
BFILE_CSID NUMBER IN
LANG_CONTEXT NUMBER(38) IN/OUT
WARNING NUMBER(38) OUT
PROCEDURE LOADFROMFILE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB BLOB IN/OUT
SRC_LOB BINARY FILE LOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN DEFAULT
SRC_OFFSET NUMBER(38) IN DEFAULT
PROCEDURE LOADFROMFILE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
DEST_LOB CLOB IN/OUT
SRC_LOB BINARY FILE LOB IN
AMOUNT NUMBER(38) IN
DEST_OFFSET NUMBER(38) IN DEFAULT
SRC_OFFSET NUMBER(38) IN DEFAULT
PROCEDURE OPEN
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
OPEN_MODE BINARY_INTEGER IN
PROCEDURE OPEN
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
OPEN_MODE BINARY_INTEGER IN
PROCEDURE OPEN
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN/OUT
OPEN_MODE BINARY_INTEGER IN DEFAULT
PROCEDURE READ
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
AMOUNT NUMBER(38) IN/OUT
OFFSET NUMBER(38) IN
BUFFER RAW OUT
PROCEDURE READ
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
AMOUNT NUMBER(38) IN/OUT
OFFSET NUMBER(38) IN
BUFFER VARCHAR2 OUT
PROCEDURE READ
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
AMOUNT NUMBER(38) IN/OUT
OFFSET NUMBER(38) IN
BUFFER RAW OUT
FUNCTION SUBSTR RETURNS RAW
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN
AMOUNT NUMBER(38) IN DEFAULT
OFFSET NUMBER(38) IN DEFAULT
FUNCTION SUBSTR RETURNS VARCHAR2
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN
AMOUNT NUMBER(38) IN DEFAULT
OFFSET NUMBER(38) IN DEFAULT
FUNCTION SUBSTR RETURNS RAW
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
FILE_LOC BINARY FILE LOB IN
AMOUNT NUMBER(38) IN DEFAULT
OFFSET NUMBER(38) IN DEFAULT
PROCEDURE TRIM
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
NEWLEN NUMBER(38) IN
PROCEDURE TRIM
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
NEWLEN NUMBER(38) IN
PROCEDURE WRITE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
AMOUNT NUMBER(38) IN
OFFSET NUMBER(38) IN
BUFFER RAW IN
PROCEDURE WRITE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
AMOUNT NUMBER(38) IN
OFFSET NUMBER(38) IN
BUFFER VARCHAR2 IN
PROCEDURE WRITEAPPEND
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC BLOB IN/OUT
AMOUNT NUMBER(38) IN
BUFFER RAW IN
PROCEDURE WRITEAPPEND
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOB_LOC CLOB IN/OUT
AMOUNT NUMBER(38) IN
BUFFER VARCHAR2 IN
Có thể hữu ích cho ai đó, đây cũng là cách để tìm hiểu quy trình và chức năng được chỉ định trên thân gói.
select name,
type,
decode(usage,'DECLARATION', 'body only', 'DEFINITION', 'spec and body', usage) defined_on,
line body_line
from user_identifiers ui
where type in ('PROCEDURE', 'FUNCTION')
and usage_context_id = (select usage_id
from user_identifiers
where object_name = ui.object_name
and object_type = ui.object_type
and usage_context_id = 0)
and object_name = 'your package name'
and object_type = 'PACKAGE BODY'
order by name
Đây là câu trả lời đúng! Đã kiểm tra OK trên 12c nhưng chế độ xem USER_IDENTIFIERS tồn tại từ ít nhất 11g. –
Theo mặc định, chế độ xem này trống. Nó được điền bởi PL/SCOPE, yêu cầu chúng tôi biên dịch lại mã của chúng tôi với các cài đặt đặc biệt. [Tìm hiểu thêm] (https://stackoverflow.com/q/44026333/146325) – APC
tôi sử dụng cái này:
gói của bạn:
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'PACKAGE'
and owner = 'owner_name'
and object_name = 'package_name'
thủ tục của bạn (chỉ từ thông số kỹ thuật, tức là toàn cầu):
select *
from all_procedures
where owner = 'owner_name'
and object_name = 'package_name'
và trong đối số/out từ thủ tục:
select *
from ALL_ARGUMENTS
where owner = 'owner_name'
and package_name = 'package_name'
and object_name = 'procedure_name'
tận hưởng!
- 1. Lấy siêu dữ liệu thủ tục lưu trữ cho một thủ tục trong gói Oracle bằng cách sử dụng ADO.NET
- 2. Nhận danh sách tất cả các chức năng và thủ tục trong cơ sở dữ liệu Oracle
- 3. Lấy danh sách tất cả các tập tin bên trong một thư mục trong vb.net
- 4. Cách lấy danh sách tất cả các đối tượng? - PostgreSQL
- 5. Oracle PL/SQL: cách lấy dấu vết ngăn xếp, tên gói và tên thủ tục
- 6. android dexclassloader lấy danh sách tất cả các lớp
- 7. Danh sách chuyển tới thủ tục Tcl
- 8. Lấy Danh sách tất cả các Màn hình Xorg
- 9. Có thể tạo kiểu mảng kết hợp Oracle bên ngoài gói/thủ tục không?
- 10. Cách lấy danh sách tất cả các gói đã cài đặt cùng với phiên bản trong nhà soạn nhạc?
- 11. Cách lấy thân của thủ tục hoặc chức năng của Oracle
- 12. Lấy tên của tất cả các lớp Java được khai báo trong một gói
- 13. Cách lấy tất cả các kết hợp của một số Danh sách <int>
- 14. Cách lấy danh sách tất cả các nút con trong TreeView trong .NET
- 15. C#/SQL Lấy tất cả các thủ tục được lưu trữ và mã số của chúng
- 16. Cách đơn giản để lập trình có được tất cả các thủ tục được lưu trữ
- 17. Lấy danh sách tất cả các phần tử trong một mảng JavaScript
- 18. Danh sách các thủ tục được lưu trữ từ Bảng
- 19. Xóa tất cả các giá trị trong một danh sách khỏi một danh sách khác?
- 20. Cách nhận tất cả các mục khác trong danh sách
- 21. Lấy danh sách tham số từ một SQLDataSource được lưu trữ Thủ tục tên
- 22. AppleScript: Lấy danh sách tất cả các thuộc tính của một đối tượng hoặc lớp
- 23. Lấy danh sách tất cả các trình nạp lớp trong một JVM
- 24. Cách lấy danh sách tất cả các bảng trong hai cơ sở dữ liệu khác nhau
- 25. Cách lấy danh sách tất cả các tuyến đường được sử dụng trong ứng dụng Sinatra?
- 26. cách lấy danh sách tất cả các tệp đang mở trong trình chỉnh sửa nhật thực?
- 27. Cách lấy danh sách tất cả các tệp video trong iPhone
- 28. Cách lấy danh sách tất cả các tên miền trong Active Directory bằng C#
- 29. Lấy danh sách các thủ tục được lưu trữ đã lọc bằng t-sql
- 30. Có cách nào để lấy danh sách tất cả các bảng tạm thời hiện tại trong SQL Server không?
bên trong thân gói hoặc trong đặc điểm kỹ thuật? –
Tôi chỉ muốn danh sách nội dung. –