INSERT
INSERT文は、表に行を追加します。
次の式は、INSERT文のVALUES句の中で使用できます。
-
順序
NEXTVALおよび順序CURRVAL -
DEFAULT
必要な権限
表の所有者に必要な権限はありません。
別のユーザーの表の場合、INSERTが必要です。
TimesTen Scaleoutでの使用
この文は、TimesTen Scaleoutでサポートされています。
SQL構文
INSERT [hint] INTO [Owner.]TableName [(Column [,...])] VALUES (SingleRowValues) [RETURNING|RETURN Expression[,...] INTO DataItem[,...]]
SingleRowValuesパラメータの構文は、次のとおりです。
{NULL|{?|:DynamicParameter}|{Constant}| DEFAULT}[,...]パラメータ
| パラメータ | 説明 |
|---|---|
|
|
|
|
|
データを挿入する表の所有者。 |
|
|
データを挿入する表の名前。 |
|
|
このリストの各列には、 1つ以上の表の列をこのリストで省略した場合、挿入された行では、省略された列の値は、表の作成時または最終更新時に指定された列のデフォルト値になります。省略した列に 列のリストを完全に省略した場合は、表のすべての列に値を指定する必要があります。 |
|
: |
準備されたSQL文の動的パラメータのプレースホルダ。動的パラメータの値は、文の実行時に設定されます。 |
|
|
特定の値。定数の詳細は、「定数」を参照してください。 |
|
|
列をデフォルト値で更新する必要があることを指定します。 |
|
|
有効な式の構文。式の詳細は、「式」を参照してください。 |
|
|
取得した |
説明
-
表の列を列名リストで省略した場合は、
INSERT文によって、省略された列にデフォルト値が割り当てられます。省略した列に表定義でNOT NULLが指定されている場合、その列にデフォルト値が定義されていなければ、INSERT文は失敗します。 -
BINARYおよびVARBINARYデータは、文字形式または16進形式に挿入できます。-
文字形式では、一重引用符が必要です。
-
16進形式では、値の前に接頭辞
0xが必要です。
-
-
外部キー制約に違反する
INSERT処理はエラーになります。外部キー制約の詳細は、「CREATE TABLE」を参照してください。 -
RETURNING句の制限:-
各
Expressionは単純な式である必要があります。集計関数はサポートされません。 -
順序番号は
OUTパラメータに戻せません。 -
ROWNUMおよび副問合せは、RETURNING句では使用できません。 -
RETURNING句内のパラメータは、INSERT文で重複して使用できません。 -
PL/SQLでは、
RETURNING句はWHERE CURRENT処理と一緒には使用できません。
-
例
purchasing.vendors表に新しい単一行を追加します。
INSERT INTO purchasing.vendors VALUES (9016, 'Secure Systems, Inc.', 'Jane Secret', '454-255-2087', '1111 Encryption Way', 'Hush', 'MD', '00007', 'discount rates are secret');
動的パラメータ:pnoおよび:pnameには、実行時に値が設定されます。
INSERT INTO purchasing.parts (partnumber, partname) VALUES (:pno, :pname);
新しい従業員の年間のsalaryおよびjob_idを返します。変数salおよびjobidを、salaryおよびjob_idと同じデータ型で宣言します。employeesに行を挿入します。確認用に変数を出力します。
Command> VARIABLE sal12 NUMBER(8,2);
Command> VARIABLE jobid VARCHAR2(10) INLINE NOT NULL;
Command> INSERT INTO employees(employee_id, last_name, email, hire_date,
job_id, salary)
VALUES (211,'Doe','JDOE',sysdate,'ST_CLERK',2400)
RETURNING salary*12, job_id INTO :sal12,:jobid;
1 row inserted.
PRINT sal12 jobid;
SAL12 : 28800
JOBID : ST_CLERK