20.28 HAS_MORE_ROWSファンクション
このファンクションは、p_max_rowsをフェッチした後、データ・ソースにさらにデータがあるかどうかを返します。このファンクションは、NEXT_ROWループが終了した後にのみ値を返します。そのときに初めて、フェッチするデータが実際にリクエストされたデータよりも多いことがわかります。
構文
APEX_EXEC.HAS_MORE_ROWS (
p_context IN t_context )
return boolean;
パラメータ
表20-26 APEX_EXEC.HAS_MORE_ROWSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
戻り値
さらにデータがある場合はTRUE
、それ以外の場合はFALSE
。more data detection
が要求されなかった場合はNULL
。
例
次の例では、問合せを実行し、最大10行をフェッチして結果セットを出力します。さらに行がある場合は、さらに行があります: has more rowsというメッセージが表示されます。このサンプル・コードは、「PL/SQL実行」リージョン内で使用できます。
DECLARE
l_context apex_exec.t_context;
BEGIN
l_context := apex_exec.open_query_context(
p_location => apex_exec.c_location_local_db,
p_max_rows => 10,
p_sql_query => 'select * from emp' );
while apex_exec.next_row( l_context ) loop
htp.p( 'EMPNO: ' || apex_exec.get_number ( l_context, 'EMPNO' ) );
htp.p( 'ENAME: ' || apex_exec.get_varchar2( l_context, 'ENAME' ) );
htp.p( '<br>' );
END loop;
IF apex_exec.has_more_rows( l_context ) THEN
htp.p( 'there are more rows ...' );
END IF;
apex_exec.close( l_context );
return;
EXCEPTION
when others then
apex_exec.close( l_context );
raise;
END;
親トピック: APEX_EXEC