Oracle Sequence Nedir?

Merhaba ,
Bu  yazıda Oracle sequence (Okunuşu : Sekans) hakkında bilgi vereceğim.

Sequence : Oracle’da azalan veya artan sıralı (genelde artan) sayısal değerleri oluşturmaya yarayan nesnedir. MS SQL de identity kolonu bu işi otomatik yapar , fakat Oracle’da bu özellik olmadığından sequence kullanılır. Bir tablonun primary key sütununa unique değerler eklemek için kullanırız genellikle. Sequence’ler data dictionary de tutulurlar.
Data Dictionary : Veritabanında tutulan her türlü objenin metadata’sının tutuldugu yerdir. Aynı zamanda DBMS hakkında bilgilerde burada tutulmaktadır.
Metadata :  Bir veri hakkındaki verilerdir. Belirli bir veri seti hakkında nasıl, ne zaman ve kim tarafından oluşturulduğu gibi hakkında tanımlayıcı bilgiler içerir.

PL/SQL Developer kodla oluşturduğumuz gibi direk mouse ile de sequence oluşturabiliriz.
File -> New -> Sequence
sequence.PNG

Karşımıza yukarıdaki gibi bir ekran çıkacaktır. Burada istenilen bilgileri doldurmamız gerekir.

  • Start With : Sequence’ın kaçtan başlamasını istiyorsak belirtiriz. Default 1’dir.
  • Cylce : Sınıra ulaşan sequence’a yeniden başlamasını belirtir. Default değeri NoCycle’dır.
  • Max Value :  Artarak giden sequence’a gidebileceği son değeri belirtir.
  • Min Value : Azalarak giden sequence’a gidebileceği son değeri belirtir.
  • Name :  Sequence’a verdiğimiz isimdir. Örnek : EMPLOYEE_ID_SEQ
  • Owner :  Giriş yaptığımız sistem olması gerekir.
  • Increment By: Sequence’ın kaçar kaçar artacağını ve azalacağını belirtir.
    +1 değerini verirseniz sequence’ı birer birer artacaktır.
    -1 değerini verirseniz sequence’ı birer birer azalacaktır.

seq2.PNG

Sequence değerlerini verdikten sonra Apply ile oluşturalım. Sonra da View SQL ile kod haline dökülmüş şekline bakalım.

seq3.PNG

cache = 20 değerini otomatik kendi verdi.
CACHE : Sistemde bir hata olunca cachede tutulan ve kaybolan numaraları tekrar kullanmak istiyorsak.
NOCACHE : Sürekli güncel numarayı üretir, sequence’ın performansı düşüktür.Ama üretilen sayılar arasında kopukluk yoktur.
İstersek NoCache yapadabiliriz ama şu aşamada gerek yok.

NEXTVAL: Sequence’ın sıradaki değeri üretmesi sağlanır.Ve her select ettiğinizde değeri değişir.

[sql]

select EMPLOYEE_ID_SEQ.nextval from dual;

[/sql]

F8 ile bir kere basarsak çıktımız : 1
F8 ile iki kere basarsak çıktımız : 2
F8 ile üç kere basarsak çıktımız : 3
seq4.PNG

vb. artış değerimiz 1 olduğundan kaç kere basarsak o çıktımızı alırız.

CURRVAL: Sequence’ın sıradaki değerini gösterir. Select çektiğinizde değeri aynı kalır.

select EMPLOYEE_ID_SEQ.CURRVAL from dual;
seq5.PNG

Şimdi tablo oluşturup sequence’ı kullanalım.

[sql]

CREATE TABLE tbl_seqdeneme(
emp_id NUMBER PRIMARY KEY,
Ad VARCHAR2(30),
soyad VARCHAR2(30));

[/sql]

Tabloya biraz insert yapalım.

[sql]

INSERT INTO tbl_seqdeneme
VALUES(EMPLOYEE_ID_SEQ.nextval,’Ahmet’,’Hamat’);

INSERT INTO tbl_seqdeneme
VALUES(EMPLOYEE_ID_SEQ.nextval,’Ahmet’,’Hamatoglu’);

INSERT INTO tbl_seqdeneme
VALUES(EMPLOYEE_ID_SEQ.nextval,’Ahmet’,’Hamoglu’);

INSERT INTO tbl_seqdeneme
VALUES(EMPLOYEE_ID_SEQ.nextval,’Ahmet’,’Matoglu’);

[/sql]
  • İlk başta Sequence değerini 4 e kadar getirmiştir ondan 5’ten başlayacak.

seq6.PNG

Sequence’ı silmek için : DROP SEQUENCE EMPLOYEE_ID_SEQ;  yazarız.

Sequence hakkında bilgi vermeye çalıştım umarım yararlı olur.
İyi çalışmalar.

Hakkında Ali Demirci

Ben Ali Demirci... 1991 Ankara doğumluyum. Ankara da yaşıyorum. Fırsat buldukça öğrendiklerimi burada paylaşıyorum. Java ile haşır neşirim. Android'den asla vazgeçemem. Öğrenmeye bayılırım. Yeni şeyler öğrendiğimde, geçmişteki projelerimde keşke böyle yapsaydım diye çok üzülmüşümdür. O yüzden öğrenmekten korkmayın. Takıldığınız yerleri mutlaka sorun. Biliyorsam yanıt veririm. Bilmiyorsam yol gösteririm. Teşekkürler :)

Kontrol Et

İşletim Sistemlerine Giriş

İşletim sistemleri, bilgisayar donanımları ve kullanıcılar arasında iletişim sağlamak amacıyla yazılmış olan programlardır. Bilgisayar Nedir? …

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.