Another small new feature in Oracle 11g PL/SQL: you can directly use sequence.nextval (and sequence.currval). It is not necessary anymore to do something like select sequence.nextval into l_seq from dual in your PL/SQL block. A small example:Â
declare l_seq number; begin l_seq := oe.orders_seq.nextval; dbms_output.put_line('Value of orders_seq.nextval = '||to_char(l_seq)); end; SQL> Value of orders_seq.nextval = 1000 PL/SQL-procedure is geslaagd.
Hi,
Karl is right. Oracle internally converts the assignment into equivalent SQL statement. Click here, to have a look at the test.
Hi,
Karl is right. Oracle internally translates the assignment into equivalent SQL statement. Read this for a test case.
Momen
Hi,
i assume that ‘l_seq := oe.orders_seq.nextval;’ is translated/executed internally to ‘SELECT oe.orders_seq.nextval INTO l_seq FROM DUAL;’
did you trace it?
Karl
This is another small but good step in the right direction. I tried if it was possible to assign a sequence to the default expression of a column, but it appears this feature is really restricted to PL/SQL.
As I see it now, many features are small tweaks to pl/sql.