sql >> データベース >  >> RDS >> Oracle

Oracleディクショナリ・ビューを使用してPL/SQLパッケージレベルのタイプを検出

    11.1以降のみ。

    マニュアルから:

    http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_plscope.htm#ADFNS02204

    http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams189.htm#REFRN10271

    PL / Scopeは、プログラム単位のコンパイル時にPL / SQLソースコード内の識別子に関するデータを収集し、静的データディクショナリで利用可能にするコンパイラ駆動型ツールです。 ビュー。収集されたデータには、識別子の種類、使用法(宣言、定義、参照、呼び出し、割り当て)、およびソースコード内の各使用法の場所に関する情報が含まれます。

    デモ

    CREATE OR REPLACE PACKAGE my_types AS
      TYPE t_cursor_type IS REF CURSOR;
      TYPE t_table_type IS TABLE OF employees%rowtype;
      type t_associative is table number index by  varchar2(20);
    END my_types;
    
    alter package  my_types compile plscope_settings='IDENTIFIERS:ALL' reuse settings;
    
    select *
    from   user_identifiers ui
    where  ui.object_type = 'PACKAGE'
    and    ui.usage = 'DECLARATION'
    and    ui.usage_context_id = '1';
    
    
    NAME                           SIGNATURE                        TYPE               OBJECT_NAME                    OBJECT_TYPE   USAGE         USAGE_ID       LINE        COL USAGE_CONTEXT_ID
    ------------------------------ -------------------------------- ------------------ ------------------------------ ------------- ----------- ---------- ---------- ---------- ----------------
    T_ASSOCIATIVE                  9A18FE6BCB72110F39CED9E08B932ECB ASSOCIATIVE ARRAY  MY_TYPES                       PACKAGE       DECLARATION          4          4          8                1
    T_TABLE_TYPE                   77067FE9732B492C166D38221DC3DF37 NESTED TABLE       MY_TYPES                       PACKAGE       DECLARATION          3          3          8                1
    T_CURSOR_TYPE                  EDEC9260784B7721BC3F3DAB293F23DD REFCURSOR          MY_TYPES                       PACKAGE       DECLARATION          2          2          8                1
    
    [email protected]> 
    


    1. テーブルを複数のcsvファイルにエクスポートする手順

    2. GradleでJavaWebアプリにojdbc7を追加するにはどうすればよいですか?

    3. SQLServerのライセンスコストを削減

    4. PostgreSQLとは何ですか?