25.35 OPEN_QUERY_CONTEXT Function Signature 1
This function opens a query context for a local database, remote database, or Web Source Module.
Syntax
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_aggregation             IN t_aggregation            DEFAULT c_empty_aggregation,
  --
  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;Parameters
Table 25-29 OPEN_QUERY_CONTEXT Function Parameters
| Parameter | Description | 
|---|---|
p_location | 
                              Location to open the query context for. Can be local database, remote database, or Web Source Module. Use the C_LOCATION_LOCAL_DB, C_LOCATION_REMOTE_DB or C_LOCATION_WEB_SOURCE constants.
                               | 
                           
p_module_static_id | 
                              Static ID of the Web Source Module, when C_LOCATION_WEB_SOURCE has been used for p_location.
                               | 
                           
p_server_static_id | 
                              Static ID of the Remote Server, when C_LOCATION_REMOTE_DB has been used for p_location.
                               | 
                           
p_table_owner | 
                              Table owner when query type TABLE is used.
                               | 
                           
p_table_name | 
                              Table name when query type TABLE is used.
                               | 
                           
p_where_clause | 
                              Where clause to append when query type TABLE is used.
                               | 
                           
p_order_by_clause  | 
                              Order by clause to append when query type TABLE is used.
                               | 
                           
p_include_rowid_column | 
                              Add the ROWID column to the SELECT list when query type TABLE is used. Defaults to FALSE.
                               | 
                           
p_sql_query | 
                              SQL Query to execute when query type SQL Query is used.
                               | 
                           
p_plsql_function_body | 
                              PL/SQL function body returning SQL query. | 
p_optimizer_hint | 
                              Optimizer hint to be applied to the most outer SQL query generated by APEX. | 
p_external_filter_expr | 
                              External filter expression to be passed to a Web Source Module. | 
p_external_order_by_expr | 
                              External order by expression to be passed to a Web Source Module. | 
p_web_src_parameters | 
                              Parameters to be passed to a Web Source Module. | 
p_auto_bind_items | 
                              Whether to auto-bind APEX items (page and application items). | 
p_sql_parameters | 
                              Additional bind variables to be used for the SQL query. | 
p_filters | 
                              Filters to be passed to the query context. | 
p_order_bys | 
                              Order by expressions to be passed to the query context. | 
p_aggregation | 
                              Aggregation (GROUP BY, DISTINCT) to apply on top of the query.
                               | 
                           
p_columns | 
                              Columns to be selected. | 
p_first_row | 
                              First row to be fetched from the result set. | 
p_max_rows | 
                              Maximum amount of rows to be fetched. | 
p_total_row_count | 
                              Whether to determine the total row count. | 
p_total_row_count_limit | 
                              Upper boundary for total row count computation. | 
Returns
The context object representing a cursor for the query.
Example
The following example executes a query and prints out the result set. This example code can be used within a Execute PL/SQL region.
                  
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;Parent topic: APEX_EXEC