heihei, you are wrong, but I agree trigger is better.
From Oracle 8i Documentation:
Where to Use Sequence Values
You can use CURRVAL and NEXTVAL in:
The SELECT list of a SELECT statement that is not contained in a subquery, materialized view, or view
The SELECT list of a subquery in an INSERT statement
The VALUES clause of an INSERT statement
The SET clause of an UPDATE statement
Example 2
This example increments the employee sequence and uses its value for a new employee inserted into the employee table:
INSERT INTO emp
VALUES (empseq.nextval, 'LEWIS', 'CLERK',
7902, SYSDATE, 1200, NULL, 20);
From Oracle 8i Documentation:
Where to Use Sequence Values
You can use CURRVAL and NEXTVAL in:
The SELECT list of a SELECT statement that is not contained in a subquery, materialized view, or view
The SELECT list of a subquery in an INSERT statement
The VALUES clause of an INSERT statement
The SET clause of an UPDATE statement
Example 2
This example increments the employee sequence and uses its value for a new employee inserted into the employee table:
INSERT INTO emp
VALUES (empseq.nextval, 'LEWIS', 'CLERK',
7902, SYSDATE, 1200, NULL, 20);