19.4 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,
    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 );パラメータ
表19-1 ADD_COLUMNプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 列配列。 | 
| 
 | 列名。 | 
| 
 | 列のデータ型。 | 
| 
 | 他の列から列を導出するための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)。 | 
例
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;親トピック: APEX_EXEC