ユーザーガイド > プロシージャ > パッケージ化されたクエリー > パッケージ化されたクエリー内の複数のSQL実行ステートメント
 
パッケージ化されたクエリー内の複数のSQL実行ステートメント
1つのパッケージ化されたクエリーで複数のSQLステートメントを順番に実行できます。複数のデータベース固有のSQLステートメントを呼び出して、テーブルの作成、テーブルの変更、テーブルの削除、行の挿入、行の更新、行の削除、プロシージャの呼び出し、トランザクションのコミット、トランザクションのロールバックを行うことができます。SQL実行のシーケンスは、エラーが発生したとき、またはSQLステートメントが結果セットを返した後に終了します。
マルチパートのパッケージ化されたクエリーの定義
SQLステートメントのシーケンスは、最後のステートメント以外のSQLステートメントが結果を返さない限り、パッケージ化されたクエリーを介してデータソースに送信できます。結果セットカーソルまたは例外が返されることで、SQL実行のシーケンスの終了が通知されます。
パッケージ化されたクエリーのSQLの最初の行では、マルチパートセパレーター文字または文字セットを設定する必要があります。次のサンプルのマルチパートセパレーターは、SQLステートメントの区切り文字をスペースで区切られた2つのセミコロンとして設定します。
<version 2> multipartseparator=;+;
 
このステートメントを使用して、特別なデータソースクエリー言語要件に準拠する他の一意の文字セットを定義できますが、選択した区切り文字が文字列内で使用されていないことを確認してください。意図しない中断が発生する可能性があります。
「;」のようなセパレーターを使用すると、クエリー内の置換後の文字列の中にセミコロンが出現する場合も問題が発生します。
マルチパートセパレーターの定義を指定すると、SQLステートメントが解析され、最後のステートメントが結果セットを返すまで順番に実行されます。
注意: 現在のトランザクションを超えて存続する方法で接続の状態を変更する何かを実行すると、接続がプールに戻されたときに、別のユーザーに予期しない結果が生じる可能性があります。