New PL/SQL Feature in Oracle 11g: the use of sequence.nextval

4

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.
Share.

About Author

4 Comments

  1. 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

  2. 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.