INSERT
The INSERT statement adds rows to a table.
The following expressions can be used in the VALUES clause of an INSERT statement:
-
Sequence
NEXTVALand SequenceCURRVAL -
DEFAULT
Required privilege
No privilege is required for the table owner.
INSERT for another user's table.
Usage with TimesTen Scaleout
This statement is supported with TimesTen Scaleout.
SQL syntax
INSERT [hint] INTO [Owner.]TableName [(Column [,...])] VALUES (SingleRowValues) [RETURNING|RETURN Expression[,...] INTO DataItem[,...]]
The SingleRowValues parameter has the syntax:
{NULL|{?|:DynamicParameter}|{Constant}| DEFAULT}[,...]Parameters
| Parameter | Description |
|---|---|
|
|
Specifies a statement level optimizer hint for the |
|
|
The owner of the table into which data is inserted. |
|
|
Name of the table into which data is inserted. |
|
|
Each column in this list is assigned a value from If you omit one or more of the table's columns from this list, then the value of the omitted column in the inserted row is the column default value as specified when the table was created or last altered. If any omitted column has a If you omit a list of columns completely, then you must specify values for all columns in the table. |
|
: |
Placeholder for a dynamic parameter in a prepared SQL statement. The value of the dynamic parameter is supplied when the statement is executed. |
|
|
A specific value. See "Constants" for information on constants. |
|
|
Specifies that the column should be updated with the default value. |
|
|
Valid expression syntax. See Expressions for information on expressions. |
|
|
Host variable or PL/SQL variable that stores the retrieved |
Description
-
If you omit any of the table's columns from the column name list, the
INSERTstatement places the default value in the omitted columns. If the table definition specifiesNOT NULLfor any of the omitted columns and there is no default value, theINSERTstatement fails. -
BINARYandVARBINARYdata can be inserted in character or hexadecimal format:-
Character format requires single quotes.
-
Hexadecimal format requires the prefix
0xbefore the value.
-
-
The
INSERToperation fails if it violates a foreign key constraint. See "CREATE TABLE" for a description of the foreign key constraint. -
Restrictions on the
RETURNINGclause:-
Each
Expressionmust be a simple expression. Aggregate functions are not supported. -
You cannot return a sequence number into an
OUTparameter. -
ROWNUMand subqueries cannot be used in theRETURNINGclause. -
Parameters in the
RETURNINGclause cannot be duplicated anywhere in theINSERTstatement. -
In PL/SQL, you cannot use a
RETURNINGclause with aWHERE CURRENToperation.
-
Examples
A new single row is added to the purchasing.vendors table.
INSERT INTO purchasing.vendors VALUES (9016, 'Secure Systems, Inc.', 'Jane Secret', '454-255-2087', '1111 Encryption Way', 'Hush', 'MD', '00007', 'discount rates are secret');
For dynamic parameters :pno and :pname, values are supplied at runtime.
INSERT INTO purchasing.parts (partnumber, partname) VALUES (:pno, :pname);
Return the annual salary and job_id of a new employee. Declare the variables sal and jobid with the same data types as salary and job_id. Insert the row into employees. Print the variables for verification.
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_CLERKSee also