Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle-Sequenzen:CURRVAL hier nicht erlaubt?

Sie haben einen Beispielcode gepostet, daher ist nicht klar, was Sie erreichen möchten. Wenn Sie den zugewiesenen Wert wissen möchten, sagen wir zum Übergeben an eine andere Prozedur, könnten Sie so etwas tun:

SQL> var dno number
SQL> insert into dept (deptno, dname, loc)
  2      values (deptno_seq.nextval, 'IT', 'LONDON')
  3      returning deptno into :dno
  4  /

1 row created.

SQL> select * from dept
  2  where deptno = :dno
  3  /

    DEPTNO DNAME          LOC
---------- -------------- -------------
        55 IT             LONDON

SQL>

Bearbeiten

Wir können die RETURNING-Klausel verwenden, um die Werte jeder Spalte zu erhalten, einschließlich derjenigen, die mit Standardwerten oder durch Triggercode festgelegt wurden.