Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
指定したカーソルにローを挿入します。
PUT cursor-name { USING DESCRIPTOR sqlda-name | FROM hostvar-list } [ INTO { DESCRIPTOR sqlda-name | hostvar-list } ] [ ARRAY :row-count ]
cursor-name : identifier | hostvar
sqlda-name : identifier
hostvar-list :インジケータ変数を含めることができる
row-count : integer | hostvar
指定したカーソルにローを挿入します。カラムの値は、最初の SQLDA から取得されます。または、INSERT 文に指定したカラム (INSERT カーソル用) または SELECT リストのカラム (SELECT カーソル用) と 1 対 1 で対応するホスト変数リストから取得されます。
PUT 文は、INSERT 文または SELECT 文のカーソルでのみ使用でき、これらの文では FROM 句に指定した 1 つのテーブルを参照するか、1 つのベーステーブルで構成される更新可能ビューを参照します。
SQLDA 内の sqldata ポインタが NULL ポインタである場合、そのカラムには値を指定しません。sqldata ポインタが DEFAULT VALUE を持つ場合、カラムはこの値を使います。そうでない場合は、NULL 値を使います。
2 番目の SQLDA またはホスト変数のリストには、PUT 文の結果が格納されています。
オプションの ARRAY 句を使って、ワイドプットを実行します。ワイドプットでは一度に複数のローが挿入され、パフォーマンスが改善されます。整数値は、挿入するローの数です。SQLDA には各エントリの変数 (ロー数 * カラム数) を入れます。最初のローは SQLDA の変数 0 から (ロー当たりのカラム数) -1 に入り、以後のローも同様です。
スクロール (value-sensitive) カーソルの場合は、新しいローが WHERE 句と一致し、キーセットカーソルが移植を完了していない場合に、挿入されたローが表示されます。動的カーソルの場合は、挿入されたローが WHERE 句と一致すると、そのローが表示される場合があります。Insensitive カーソルは更新できません。
カーソルで参照されるテーブルの所有者であるか、テーブルに対する INSERT 権限を持っているか、INSERT ANY TABLE システム権限を持っている必要があります。
ローを value-sensitive (キーセット駆動型) カーソルに挿入するとき、挿入されたローは結果セットの最後に表示されます。ローがクエリの WHERE 句に一致しない場合も、ORDER BY 句が正常にローを結果セットの別の場所に置く場合も同様です。
SQL/2008 ベンダー拡張。
次の文は、Embedded SQL での PUT の使い方を示します。
EXEC SQL PUT cur_employee FROM :employeeID, :surname;