Sunday, July 19, 2009

ALTERNATİF SEQUENCE KULLANIMI

EĞER CREATE SEQUENCE Yetkiniz yok ise ve artan bir alan kullanmak zorunluluğunuz var ise aşağıdaki yöntemi kullanarak kendize bir sequence yaratabilirsiniz. Bu yöntem büyük databaselerde yada büyük tablolarda kullanmak mantıklı değildir. Max değeri bulmak sizde ciddi performans kaybına sebeb olacaktır.

--sequence kullanmaktan kaçmanın bir yöntemide budur diyebiliriz.
--tablomuzu yaratalım.
create table tablom as select * from all_objects where rownum<50;

--en buyuk değeri bularak değerini select cumleciğinde bir arttırıp değişkene atıyoruz.
--sonrada yeni değerimizde bu değişkeni kullanıyoruz.
DECLARE
en_buyuk_deger NUMBER;
BEGIN
SELECT MAX (object_id) + 1
INTO en_buyuk_deger
FROM tablom;
INSERT INTO tablom
(object_id,object_name
)
VALUES (en_buyuk_deger,'ali'
);
commit;
END;

No comments: