27.44 OPEN_ARRAYプロシージャ
このプロシージャは、指定された配列列内に配列を入力し、カーソルを最初の行の前に移動して、next_array_row()
をコールして最初の配列要素を指すようにします。
現在、RESTデータ・ソースのコンテキストでのみサポートされています。
構文
APEX_EXEC.OPEN_ARRAY (
p_context IN t_context,
p_column_position IN PLS_INTEGER,
p_column_name IN VARCHAR2 )
パラメータ
パラメータ | 説明 |
---|---|
p_context |
OPEN ファンクションのいずれかを使用して取得したコンテキスト・オブジェクト。
|
p_column_position |
DMLコンテキスト内の値を設定する列の位置。 |
p_column_name |
行を追加する配列列の名前。 |
例
次の例の内容
DECLARE
l_context apex_exec.t_context;
BEGIN
l_context := apex_exec.open_rest_source_query(
p_static_id => '{REST Source static ID}',
p_max_rows => 1000 );
<<rest_rows_loop>>
WHILE apex_exec.next_row( l_context ) LOOP
sys.dbms_output.put_line( 'ID: ' || apex_exec.get_varchar2( l_context, 'TITLE' ) );
sys.dbms_output.put_line( 'MAG: ' || apex_exec.get_varchar2( l_context, 'MAG' ) );
sys.dbms_output.put_line( 'PLACE: ' || apex_exec.get_varchar2( l_context, 'PLACE' ) );
sys.dbms_output.put_line( 'TITLE: ' || apex_exec.get_varchar2( l_context, 'TIME' ) );
sys.dbms_output.put_line( 'TIME: ' || apex_exec.get_varchar2( l_context, 'ID' ) );
sys.dbms_output.put_line( 'SOURCES: ' );
apex_exec.open_array(
p_context => l_context,
p_column_name => 'SOURCES' );
<<rest_array_row_sources_loop>>
WHILE apex_exec.next_array_row( l_context ) LOOP
sys.dbms_output.put_line( '-- ID: ' || apex_exec.get_varchar2( l_context, 'SOURCE_ID' ) );
sys.dbms_output.put_line( '-- NAME: ' || apex_exec.get_varchar2( l_context, 'SOURCE_NAME' ) );
END LOOP rest_array_row_sources_loop;
apex_exec.close_array( l_context );
sys.dbms_output.put_line( 'REPORTERS: ' );
apex_exec.open_array(
p_context => l_context,
p_column_name => 'REPORTERS' );
<<rest_array_row_reporters_loop>>
WHILE apex_exec.next_array_row( l_context ) LOOP
sys.dbms_output.put_line( '-- NAME: ' || apex_exec.get_varchar2( l_context, 'REPORTER_NAME' ) );
END LOOP rest_array_row_reporters_loop;
apex_exec.close_array( l_context );
END LOOP rest_rows_loop;
apex_exec.close( l_context );
EXCEPTION
WHEN others THEN
apex_exec.close( l_context );
RAISE;
END;
親トピック: APEX_EXEC