Selecting inserted values
You can retrieve the values for rows that are being inserted by specifying the INSERT statement in the FROM clause of a SELECT statement.
When you insert one or more rows into a table, you can select the result rows of the insert operation. These rows include any of the following values:
- The value of any generated column, such as identity, ROWID, or row change timestamp columns
- Any default values used for columns
- All values for all rows inserted by a multiple-row insert operation
- Values that were changed by a before insert trigger
The following example uses a table defined as follows:
CREATE TABLE EMPSAMP
(EMPNO INTEGER GENERATED ALWAYS AS IDENTITY,
NAME CHAR(30),
SALARY DECIMAL(10,2),
DEPTNO SMALLINT,
LEVEL CHAR(30),
HIRETYPE VARCHAR(30) NOT NULL DEFAULT 'New Employee',
HIREDATE DATE NOT NULL WITH DEFAULT)
To insert a row for a new employee and see the values that were used for EMPNO, HIRETYPE, and HIREDATE, use the following statement:
SELECT EMPNO, HIRETYPE, HIREDATE
FROM FINAL TABLE ( INSERT INTO EMPSAMP (NAME, SALARY, DEPTNO, LEVEL)
VALUES('Mary Smith', 35000.00, 11, 'Associate'))
The returned values are the generated value for EMPNO, 'New Employee' for HIRETYPE, and the current date for HIREDATE.