ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 


sql_signal


形式


sql_signal ()


戻り値

戻り値はありません。

引数

なし。

説明

sql_signalルーチンは、プログラムの条件ハンドラにSQL文の実行時に発生したエラーのシグナルを発行します。プログラムに条件ハンドラが含まれない場合、エラーが発生すると、sql_routineにより、エラー・メッセージが出力され、プログラムが終了されます。

ホスト言語コンパイラでシグナル・メカニズムを提供していない場合、独自の条件ハンドラを用意する必要があります。


使用方法


関連ルーチン

なし。

次のSQL$REPORT.SCサンプル・プログラムからの抜粋は、sql_signalルーチンのコール方法を示しています。


/* Main loop */
do
    {
    /* FETCH by SQL to get a database record */
    EXEC SQL FETCH REPORT_CURSOR INTO
                :employee_id, :last_name, :first_name,
                :job_code, :department_code, :salary_amount;

    /* Check return status and take appropriate action */
    switch (SQLCA.SQLCODE)
        {
        /* If a record was returned, print a detail line */
        case SQL_SUCCESS :
            detail_line();
            break;
        /* If end of stream is encountered, print the final totals */
        case STREAM_EOF :
            job_code_foot();
            dept_code_foot();
            final_foot();
            break;
        /* Any other status is an error condition and will be trapped by the
           SQL error handler */
        default :
            break;
        }
    }
while (SQLCA.SQLCODE == SQL_SUCCESS);

/* Close the report file */
fclose(report_file);

/* Close the cursor */
EXEC SQL CLOSE REPORT_CURSOR;

/* Rollback the transaction */
EXEC SQL ROLLBACK;

exit(1);

ERROR_HANDLER:
    printf("\nAn unexpected error was encountered %d", SQLCA.SQLCODE);
    sql_signal();
}