27.57 OPEN_REST_SOURCE_QUERYファンクション
このファンクションは、RESTソース問合せコンテキストを開きます。指定されたRESTソースの静的IDに基づいて、FETCH_COLLECTION
データベース操作に一致する操作が選択されます。
構文
APEX_EXEC.OPEN_REST_SOURCE_QUERY (
p_static_id IN VARCHAR2,
p_parameters IN t_parameters DEFAULT c_empty_parameters,
--
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_control_break IN t_control_break DEFAULT c_empty_control_break,
p_columns IN t_columns DEFAULT c_empty_columns,
--
p_external_filter_expr IN VARCHAR2 DEFAULT NULL,
p_external_order_by_expr IN VARCHAR2 DEFAULT NULL,
--
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_array_column_name IN VARCHAR2 DEFAULT NULL )
RETURN t_context;
パラメータ
パラメータ | 説明 |
---|---|
p_static_id |
呼び出すRESTデータソースの静的ID。 |
p_parameters |
データ・ソースに渡されるパラメータ値。 |
p_filters |
データ・ソースに渡されるフィルタ。 |
p_order_bys |
データ・ソースに渡されるORDER BY式。 |
p_aggregation |
問合せに基づいて適用する集計(GROUP BY 、DISTINCT )。
|
p_control_break |
コンテキスト・データをループする際にコントロール・ブレークを返すかどうか。 |
p_columns |
データソースから選択する列。 |
p_external_filter_expr |
1:1で外部Webサービスに渡されるフィルタ式。使用されている実際のWebサービスに依存します。 |
p_external_order_by_expr |
1:1で外部Webサービスに渡されるORDER BY式。使用されている実際のWebサービスに依存します。 |
p_first_row |
データ・ソースからフェッチする最初の行。 |
p_max_rows |
データ・ソースからフェッチする行の最大数。 |
p_total_row_count |
総行数を求めるかどうか("allow fetch all rows" 属性がYes である場合にのみサポートされます)。
|
p_array_column_name |
RESTソース・データ・プロファイル内の配列列の名前。 |
戻り値
RESTデータ・ソース問合せのcursor
を表すコンテキスト・オブジェクト
例
次の例では、URLエンドポイントhttps://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson
に基づいて、静的IDがUSGS
のRESTデータ・ソースが共有コンポーネントに作成されていることを前提としています。この例では、RESTサービスを呼び出し、結果セットを出力しています。このサンプル・コードは、プラグイン内やExecute PL/SQL
リージョン内で使用できます。
DECLARE
l_context apex_exec.t_context;
l_filters apex_exec.t_filters;
l_columns apex_exec.t_columns;
l_row pls_integer := 1;
l_magidx pls_integer;
l_titidx pls_integer;
l_plcidx pls_integer;
l_timidx pls_integer;
l_ididx pls_integer;
BEGIN
l_context := apex_exec.open_rest_source_query(
p_static_id => 'USGS',
p_max_rows => 1000 );
l_titidx := apex_exec.get_column_position( l_context, 'TITLE' );
l_magidx := apex_exec.get_column_position( l_context, 'MAG' );
l_plcidx := apex_exec.get_column_position( l_context, 'PLACE' );
l_timidx := apex_exec.get_column_position( l_context, 'TIME' );
l_ididx := apex_exec.get_column_position( l_context, 'ID' );
while apex_exec.next_row( l_context ) LOOP
htp.p( 'ID: ' || apex_exec.get_varchar2( l_context, l_ididx ) );
htp.p( 'MAG: ' || apex_exec.get_varchar2( l_context, l_magidx ) );
htp.p( 'PLACE: ' || apex_exec.get_varchar2( l_context, l_plcidx ) );
htp.p( 'TITLE: ' || apex_exec.get_varchar2( l_context, l_titidx ) );
htp.p( 'TIME: ' || apex_exec.get_varchar2( l_context, l_timidx ) );
END LOOP;
apex_exec.close( l_context );
EXCEPTION
when others then
apex_exec.close( l_context );
RAISE;
END;
親トピック: APEX_EXEC