Oracle
 sql >> Base de données >  >> RDS >> Oracle

Séquences Oracle :CURRVAL non autorisé ici ?

Vous avez posté un exemple de code, il n'est donc pas clair ce que vous essayez de réaliser. Si vous voulez connaître la valeur assignée, par exemple pour passer à une autre procédure, vous pouvez faire quelque chose comme ceci :

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>

Modifier

Nous pouvons utiliser la clause RETURNING pour obtenir les valeurs de n'importe quelle colonne, y compris celles qui ont été définies avec des valeurs par défaut ou par un code déclencheur.