ADD_COLUMNプロシージャ

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

構文

procedure 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 );

パラメータ

表14-1 ADD_COLUMNプロシージャのパラメータ

パラメータ 説明

p_columns

列配列。

p_column_name

列名。

p_data_type

列のデータ型。

p_sql_expression

他の列から列を導出するためのSQL式。

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;