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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

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