19.28 HAS_MORE_ROWSファンクション
このファンクションは、p_max_rowsをフェッチした後、データ・ソースにさらにデータがあるかどうかを返します。このファンクションは、NEXT_ROWループが終了した後にのみ値を返します。そのときに初めて、フェッチするデータが実際にリクエストされたデータよりも多いことがわかります。
構文
APEX_EXEC.HAS_MORE_ROWS (
    p_context IN t_context )
    return boolean;パラメータ
表19-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