テーブルに行を追加します。
構文
INSERT INTOテーブル [サブクエリ][@ dblink ] [ ( column [, ...] ) ]
{VALUES ( { expression | DEFAULT } [, ...] )
[ RETURNING return_expression [, ...]
{INTO { record | variable [, ...] }
| BULK COLLECT INTO collection [, ...] } ]
| query } 説明
INSERTステートメントを実行して、新しい行をテーブルに挿入できます。 一度に1つの行を挿入することも、クエリの結果として複数の行を挿入することもできます。
リスト内の列を希望する順序でリストすることができます。 リストにない各列には、宣言されたデフォルト値またはnullのいずれかのデフォルト値が挿入されます。
列の式で正しいデータ型が使用されていない場合、自動型変換が試行されます。
INSERTステートメントがSPLプログラム内で実行され、VALUES句が使用されている場合にのみ、RETURNINGINTO { record | variable [, ...] } 句を指定できます。
INSERTステートメントがSPLプログラム内で実行された場合にのみ、RETURNING BULK COLLECT INTO collection [, ...] 句を指定できます。 BULK COLLECT INTO句のオブジェクトとして複数のcollectionを指定する場合、各collectionは単一のスカラーフィールドで構成されている必要があります。 各コレクションをレコードにすることはできません。 挿入された行ごとに、評価値return_expressionは、最初の要素から始まるcollection内の要素です。 collection内の既存の行が削除されます。 結果セットが空の場合、collectionも空になります。
テーブルに挿入できるように、テーブルに対するINSERT権限が必要です。 query句を使用してクエリから行を挿入する場合は、クエリで使用されるテーブルに対するSELECT権限も必要です。
パラメーター
| パラメーター | 説明 |
| table | 既存のテーブルの名前。 名前はスキーマで修飾できます。 |
| dblink | リモートデータベースを識別するデータベースリンク名。 データベースリンクの詳細については、「CREATE database LINK」ステートメントをご参照ください。 |
| column | table内の列の名前。 |
| expression | columnに割り当てる式または値。 |
| DEFAULT | 列のデフォルト値。 |
| query | 挿入する行を提供するクエリ (SELECTステートメント) 。 詳細については、「SELECT」をご参照ください。 |
| return_expression | tableに1つ以上の列を含めることができる式。 tableの列名がreturn_expressionに指定されている場合、return_expressionが評価されるときに列に代入される値は次のように決定されます。
|
| record | フィールドにreturn_expressionの評価結果を割り当てるレコード。 たとえば、最初のreturn_expressionはrecordの最初のフィールドに割り当てられ、2番目のreturn_expressionはrecordの2番目のフィールドに割り当てられます。 レコード内のフィールドの数は式の数と一致する必要があり、フィールドは対応する式とタイプ互換である必要があります。 |
| variable | return_expressionの評価結果を代入する変数です。 複数のreturn_expressionとvariableを指定した場合、最初のreturn_expressionは最初のvariableに割り当てられ、2番目のreturn_expressionは2番目のvariableに割り当てられます。 INTOキーワードに続く指定された変数の数は、RETURNINGキーワードに続く式の数と一致する必要があり、変数は対応する式と型互換である必要があります。 |
| collection | 評価されたreturn_expressionから要素が作成されるコレクション。 単一フィールドのコレクションまたはレコードタイプのコレクションを指定できます。 各コレクションが単一フィールドで構成される複数のコレクションを指定することもできます。 戻り式の数は、指定したすべてのコレクションのフィールド数と一致し、順序付けする必要があります。 各return_expressionは、対応するcollectionフィールドと型互換である必要があります。 |
| subquery | このパラメーターは、サブクエリ句を指定します。 |
例
empテーブルに1行を挿入する:
INSERT INTO emp VALUES (8021、'JOHN '、'SALESMAN' 、7698、'22-FEB-07' 、1250,500、30);この2番目の例では、commという名前の列は省略されます。 したがって、デフォルト値は null です。
INSERT INTO emp (empno、ename、job、mgr、hiredate、sal、deptno)
値 (8022、「ピーター」、「CLERK」、7698、「03-DEC-06」、950,30); 3番目の例では、値を指定するのではなく、hiredate列とcomm列にDEFAULT句を使用します。
INSERT INTO emp VALUES (8023、'FORD' 、'ANALYST' 、7566、NULL、3000、NULL、20);この例では、部門名のテーブルを作成してから、テーブルに挿入します。 部門名は、deptテーブルのdname列から取得します。
テーブルの作成deptnames (
deptname VARCHAR2 (14)
);
INSERT INTO deptnames SELECT dname FROM dept; select * from table1の結果をオブジェクトとして使用し、(1,1,1) の行をオブジェクトに挿入します。
INSERT INTO (SELECT * FROM table1) 値 (1、'1' 、1) ;