Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (P ~ Z)

 

PUT 文 [ESQL]

この文は、指定したカーソルにローを挿入するために使用します。

構文
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;