Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách lấy thông tin về tất cả các loại dữ liệu được khai báo trong một gói nhất định

Sử dụng PL / Phạm vi ...

alter session set plscope_settings = 'IDENTIFIERS:ALL';

... và biên dịch lại gói (UTL_LOG trong trường hợp của tôi) ...

alter package utl_log compile;
alter package utl_log compile body;

... và sau đó truy vấn user_identifiers xem ...

select name, type, object_name, object_type, line, col
from user_identifiers
where object_name = 'UTL_LOG'
    and usage = 'DECLARATION'
    and type not in ('VARIABLE','FUNCTION','FORMAL IN','FORMAL OUT','CONSTANT','PROCEDURE','FUNCTION','PACKAGE')
;

... mà (trong trường hợp của tôi) sẽ mang lại ...

NAME                TYPE    OBJECT_ OBJECT_ LINE COL
------------------- ------- ------- ------- ---- ---
ARR_SOME_COLLECTION VARRAY  UTL_LOG PACKAGE   19   6
REC_SOME_RECORD     RECORD  UTL_LOG PACKAGE   15   6
TYP_LOG_CODE        SUBTYPE UTL_LOG PACKAGE    8   9

Xin lưu ý PL / Phạm vi đó có thể được sử dụng cho bất kỳ số nhận dạng được khai báo / xác định trong bất kỳ đơn vị chương trình, không chỉ dành cho khai báo kiểu dữ liệu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ mục toàn cầu không phân vùng trong Oracle

  2. Không thể chuyển giá trị chuỗi 1,2 làm đầu vào cho một truy vấn tiên tri

  3. Làm thế nào để định dạng một cột NUMBER trong Oracle?

  4. Cách chuyển cột thành hàng trong oracle 10g

  5. Cách dễ nhất để tạo một cột SN SÀNG trong Oracle là gì?