19.32 OPEN_QUERY_CONTEXTファンクション
このファンクションは、ローカル・データベース、リモート・データベースまたはWebソース・モジュールの問合せコンテキストを開きます。
構文
FUNCTION OPEN_QUERY_CONTEXT(
    p_location               IN apex_exec_api.t_location,
    --  
    p_table_owner            IN VARCHAR2                       DEFAULT NULL,
    p_table_name             IN VARCHAR2                       DEFAULT NULL,
    p_where_clause           IN VARCHAR2                       DEFAULT NULL,
    p_order_by_clause        IN VARCHAR2                       DEFAULT NULL,
    p_include_rowid_column   IN BOOLEAN                        DEFAULT FALSE,
    --
    p_sql_query              IN VARCHAR2                       DEFAULT NULL,
    p_plsql_function_body    IN VARCHAR2                       DEFAULT NULL,
    p_optimizer_hint         IN VARCHAR2                       DEFAULT NULL,
    --
    p_server_static_id       IN VARCHAR2                       DEFAULT NULL,
    --
    p_module_static_id       IN VARCHAR2                       DEFAULT NULL,
    p_web_src_parameters     IN t_parameters                   DEFAULT c_empty_parameters,
    p_external_filter_expr   IN VARCHAR2                       DEFAULT NULL,
    p_external_order_by_expr IN VARCHAR2                       DEFAULT NULL,
    --
    p_sql_parameters         IN t_parameters                   DEFAULT c_empty_parameters,
    p_auto_bind_items        IN BOOLEAN                        DEFAULT TRUE,
    --
    p_columns                IN t_columns                      DEFAULT c_empty_columns,
    --
    p_filters                IN t_filters                      DEFAULT c_empty_filters,
    p_order_bys              IN t_order_bys                    DEFAULT c_empty_order_bys,
    --
    p_first_row              IN PLS_INTEGER                    DEFAULT NULL,
    p_max_rows               IN PLS_INTEGER                    DEFAULT NULL,
    --
    p_total_row_count        IN BOOLEAN                        DEFAULT FALSE,
    p_total_row_count_limit  IN NUMBER                         DEFAULT NULL ) RETURN t_context;パラメータ
表19-30 OPEN_QUERY_CONTEXTファンクションのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
 | 問合せコンテキストを開く場所。ローカル・データベース、リモート・データベースまたはWebソース・モジュールのいずれかです。 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 問合せタイプ | 
| 
 | 問合せタイプ | 
| 
 | 問合せタイプ | 
| 
 | 問合せタイプ | 
| 
 | 問合せタイプ | 
| 
 | 問合せタイプにSQL問合せを使用する場合に実行するSQL問合せ。 | 
| 
 | SQL問合せを戻すPL/SQLファンクションの本体。 | 
| 
 | APEXによって生成された最も外側のSQL問合せに適用されるオプティマイザ・ヒント。 | 
| 
 | Webソース・モジュールに渡される外部フィルタ式。 | 
| 
 | Webソースに渡される外部ORDER BY式。 | 
| 
 | Webソース・モジュールに渡されるパラメータ。 | 
| 
 | APEXアイテム(ページおよびアプリケーション・アイテム)を自動的にバインドするかどうか。 | 
| 
 | SQL問合せに使用する追加のバインド変数。 | 
| 
 | 問合せコンテキストに渡されるフィルタ。 | 
| 
 | 問合せコンテキストに渡されるORDER BY式。 | 
| 
 | 選択される列。 | 
| 
 | 結果セットからフェッチする最初の行。 | 
| 
 | フェッチする行の最大数。 | 
| 
 | 総行数を求めるかどうか。 | 
| 
 | 総行数計算の上限値。 | 
戻り値
問合せのカーソルを表すコンテキスト・オブジェクト。
                  
例
次の例では、問合せを実行し、結果セットを出力します。このサンプル・コードは、PL/SQL実行リージョン内で使用できます。
                  
declare
    l_context apex_exec.t_context; 
    --    
    l_idx_empno    pls_integer;
    l_idx_ename    pls_integer;
    l_idx_job      pls_integer;
    l_idx_hiredate pls_integer;
    l_idx_mgr      pls_integer;
    l_idx_sal      pls_integer;
    l_idx_comm     pls_integer;
    l_idx_deptno   pls_integer;
    --    
begin
    l_context := apex_exec.open_query_context(
        p_location          => apex_exec.c_location_local_db,
        p_sql_query         => 'select * from emp' );
    --   
    l_idx_empno    := apex_exec.get_column_position( l_context, 'EMPNO'); 
    l_idx_ename    := apex_exec.get_column_position( l_context, 'ENAME'); 
    l_idx_job      := apex_exec.get_column_position( l_context, 'JOB'); 
    l_idx_hiredate := apex_exec.get_column_position( l_context, 'HIREDATE'); 
    l_idx_mgr      := apex_exec.get_column_position( l_context, 'MGR'); 
    l_idx_sal      := apex_exec.get_column_position( l_context, 'SAL'); 
    l_idx_comm     := apex_exec.get_column_position( l_context, 'COMM'); 
    l_idx_deptno   := apex_exec.get_column_position( l_context, 'DEPTNO'); 
    --    
    while apex_exec.next_row( l_context ) loop
    --
        htp.p( 'EMPNO: ' || apex_exec.get_number  ( l_context, l_idx_empno    ) ); 
        htp.p( 'ENAME: ' || apex_exec.get_varchar2( l_context, l_idx_ename    ) );
        htp.p( 'MGR:   ' || apex_exec.get_number  ( l_context, l_idx_mgr      ) );
    --
    end loop;
    --        
    apex_exec.close( l_context );
    return;
exception
    when others then
        apex_exec.close( l_context );
        raise;    
end;親トピック: APEX_EXEC