0

"P1: begin" と "P2: begin" を使用して、ストアド プロシージャが異なる部分にタグ付けされている理由について説明したり、ドキュメントを参照したりできますか? ありがとう、マイク

4

1 に答える 1

1

SQL プロシージャーはroutine-bodyによって定義されます。ルーチン本体1 つのSQLステートメントによって定義されます。SQL プロシージャの場合、通常は 1 つの複合ステートメントによって定義されますが、複合ステートメントは別のステートメント内にネストすることができます。それぞれlabel:Beginが新しい複合ステートメントの始まりを確立します。別の中で定義されたものは、ネストされた複合ステートメントになります。以下は、質問に対する回答として満足できるドキュメント リンクです。主な目的をスコープとして説明するドキュメントのスニペットが含まれており、スコープが設定されている各エンティティに重点を置きました。

http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_71/db2/rbafzsummaryscope.htm

ネストされた複合ステートメントでの「名前」スコープの要約 ネストされた

複合ステートメントを SQL ルーチン内で使用して、SQL変数宣言カーソル条件名、および条件ハンドラーのスコープを定義できます。

さらに、ラベルには、ネストされた複合ステートメントのコンテキストでスコープが定義されています。ただし、名前空間の規則、および一意でない名前を参照する方法は、名前の種類によって異なります。次の表は、これらの違いをまとめたものです。[...]

于 2015-05-19T16:25:30.940 に答える