埋め込みSQLとストアド プロシージャに含まれるINSERTの一般ルール
INSERTが埋め込みSQLとストアド プロシージャに含まれている場合、そのどちらにも次のルールが適用されます。
挿入される行は、候補となる行を次の方法で作成することによって構成される。
- 行の各列の値をNULLとして定義する。
- 対応する列に挿入する値を代入する。
いずれかのNOT NULL列に対する結果行の値 | 挿入結果 |
---|---|
Non-null | 成功 |
NULL | 失敗 SQLCODEが-1002に設定される。 |
挿入される値は、ホスト変数の定義のルールに従って、対応する行の列値に設定される。
table_nameによって指定されるテーブルが、WITH CHECK OPTIONを指定して定義されたビューである場合、挿入される行はビューによって選択された一連の行でなければならない。
埋め込みSQLで値指定のINSERTを実行
埋め込みSQLでINSERTの値(valued)形式を使用する場合、VALUES句内でのホスト変数のコロンはオプションです。
埋め込みSQLとストアド プロシージャでINSERT ... SELECTを実行する場合のルール
埋め込みSQLとストアド プロシージャで選択形式のINSERTを使用する場合、次のルールがあてはまります。
- subqueryによって返される一時テーブル内の行数が、挿入される行の数を決定する。
- 1つ以上の選択行が挿入された後でエラーが発生すると、SQLCODEに値1002が返され、現在のトランザクションが終了してロールバックが行なわれる。
- subqueryによって選択される行がない場合、値+100がSQLCODEに返され、行の挿入は行なわれない。