ORA-08002: sequence NAME.CURRVAL is not yet defined in this session

Herhangi bir sequence’ den currval değerini select etmeye çalışırken aşağıdaki gibi bir hata alınması durumunda neden hata alındığından ve nasıl çözüme kavuşturulduğundan bahsetmek istiyorum.

Örneğimiz de kullanmak üzere bir tane sequence create edelim ;

SQL> CREATE SEQUENCE test_seq
MINVALUE 1
MAXVALUE 9999999
START WITH 1
INCREMENT BY 1
CACHE 20
Sequence created.

Şimdi currval değerini select etmeye çalışalım;

SQL> SELECT test_seq.currval FROM dual
SELECT test_seq.currval FROM dual
*
Error at line 1
ORA-08002: sequence TEST_SEQ.CURRVAL is not yet defined in this session

Hatamızı aldık, hatanın nedeni sequence create edilmesine rağmen henüz hiç kullanılmadığından dolayı bir currval değerinin olmayışından kaynaklanıyor. Şimdi sequence ‘ imizden bir kere kullanıp sonrasında aynı işlemi yapmaya çalışalım.

SQL> SELECT test_seq.NEXTVAL FROM dual

NEXTVAL
———-
1
1 row selected.

Şimdi currval değerimize bakalım ;

SQL> SELECT test_seq.currval FROM dual

CURRVAL
———-
1
1 row selected.

Artık komutumuz çalışıyor.

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


dört × = 36