27.4 ADD_COLUMNプロシージャ

このプロシージャは、列のコレクションに列を追加します。

列のサブセットのみをリクエストするために、列のコレクションをOPEN_*_CONTEXTコールに渡すことができます。これは、SQL文がないWebソースに特に役立ちます。列配列を渡さない場合や、空の列配列を渡した場合は、Webソースに定義されているすべての列がフェッチされます。

構文

APEX_EXEC.ADD_COLUMN (
    p_columns               IN OUT NOCOPY   t_columns,
    p_column_name           IN              VARCHAR2,
    p_data_type             IN              t_data_type DEFAULT NULL,
    p_sql_expression        IN              VARCHAR2    DEFAULT NULL,
    p_format_mask           IN              VARCHAR2    DEFAULT NULL,
    p_is_primary_key        IN              BOOLEAN     DEFAULT FALSE,
    p_is_query_only         IN              BOOLEAN     DEFAULT FALSE,
    p_is_returning          IN              BOOLEAN     DEFAULT FALSE,
    p_is_checksum           IN              BOOLEAN     DEFAULT FALSE,
    p_parent_column_path    IN              VARCHAR2    DEFAULT NULL );

パラメータ

パラメータ 説明
p_columns 列配列。
p_column_name 列名。
p_data_type 列のデータ型。
p_sql_expression 他の列からの列の導出に使用されるSQL式。
p_format_mask この列に使用する書式マスク。
p_is_primary_key 主キー列かどうか(デフォルトはFALSE)。
p_is_query_only 問合せのみの列をDMLコンテキストに書き込みません(デフォルトはFALSE)。
p_is_returning DMLの実行後に、RETURNING列を取得するかどうか(デフォルトはFALSE)。
p_is_checksum チェックサム(行バージョン)列であるかどうか(デフォルトはFALSE)。
p_parent_column_path 索引を検索する親列へのパス。

DECLARE
    l_columns     apex_exec.t_columns;
    l_context     apex_exec.t_context;
BEGIN
    apex_exec.add_column(
        p_columns     => l_columns,
        p_column_name => 'ENAME' );

    apex_exec.add_column(
        p_columns     => l_columns,
        p_column_name => 'SAL' );

    l_context := apex_exec.open_web_source_query(
        p_module_static_id => '{web source module static ID}', 
        p_columns          => l_columns
        p_max_rows         => 1000 );

        while apex_exec.next_row( l_context ) LOOP
           -- process rows here ...
        END LOOP;

    apex_exec.close( l_context );
EXCEPTION
    when others then
         apex_exec.close( l_context );
         raise;
END;