3

オラクル プロ *c/c++

EXEC SQL WHENEVER SQLERROR DO break;

このステートメントは実際に何をしますか? これにより、次のすべての exec sql ステートメントに break ステートメントが挿入されますか?

do break の範囲を制限するには?

4

3 に答える 3

3

ドキュメントから

壊れてください

実際の「break」ステートメントがプログラムに配置されます。このアクションはループで使用します。WHENEVER 条件が満たされると、プログラムは内部のループを終了します。

したがって、エラーが発生するたびに abreakが発行されますが、これはループの外ではあまり意味がありません。特定のステートメントの後の動作をリセットする場合は、 を発行EXEC SQL WHENEVER SQLERROR CONTINUE;して、デフォルトのエラー処理動作にリセットします。

継続する

可能であれば、プログラムは次のステートメントで引き続き実行されます。これはデフォルトのアクションであり、WHENEVER ディレクティブを使用しないのと同じです。これを使用して、条件チェックをオフにすることができます。

事実上、ステートメントを 2 つのディレクティブの間に挟んで、WHENEVERそのステートメントにのみ適用されるようにすることができます。

于 2014-04-02T10:31:04.693 に答える
2

ステートメントは C/C++ マクロのように機能します。宣言ポイントからファイルの終わりまで、または再宣言まで適用されるため、再宣言する必要があります。

于 2016-05-13T05:16:32.823 に答える