17.10 - 埋め込みSQLおよびストアド プロシージャに含まれるINSERT - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)

埋め込み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に返され、行の挿入は行なわれない。