この文は、指定したカーソルにローを挿入するために使用します。
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 に入り、以後のローも同様です。
スクロール (values sensitive) カーソルの場合は、新しいローが WHERE 句と一致し、キーセット・カーソルが移植を完了していない場合に、挿入されたローが表示されます。動的カーソルの場合は、挿入されたローが WHERE 句と一致すると、そのローが表示される場合があります。Insensitive カーソルは更新できません。
データベースに LONG VARCHAR または LONG BINARY 値を入れる場合の詳細については、SET 文を参照してください。
INSERT パーミッションが必要です。
ローを value-sensitive (キーセット駆動型) カーソルに挿入するとき、挿入されたローは結果セットの最後に表示されます。ローがクエリの WHERE 句に一致しない場合も、ORDER BY 句が正常にローを結果セットの別の場所に置く場合も同様です。カーソルによるローの変更を参照してください。
SQL/2003 コア機能。
次の文は、Embedded SQL での PUT の使い方を示します。
EXEC SQL PUT cur_employee FROM :employeeID, :surname; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |