Oracle SQL PLSQL Java üzerine Türkçe bilgi döküman

ROWTYPE kullanarak satır update etme ve kolonlarda DEFAULT anahtar kelimesi

Posted by hakkioktay on March 15, 2007

ROWTYPE’ı  PL/SQL kodlarımızda sıkça kullanırız.Bununla, yapısı tablonun bir satırı şeklinde olan bir type tanımlamış oluruz.Kısaca hatırlatmak gerekirse; Örneğin TTT tablosu ID ve DESCR alanlarından oluşuyor ise

a_row TTT%rowtype;

tanımladıgımızda “a_row” artık TTT tablosunun satırı tipinde bir değişkendir.Bu satır değişkenini kolonlarına! ”a_row.ID” ve “a_row.DESCR” seklinde ulaşbiliriz.Şimdi asıl konumuza geçelim.

Bu tipte bir değişkenimiz varsa ve değerleri girmiş isek bir satırı update ederken her bir kolon için tek tek “set …, …, …” kullanmamıza gerek yoktur.”…set row = row_type ..” demeniz yeterlidir.Örnek yapalım :

create table ttest nologging as
select object_id, object_name, object_type from user_objects
where rownum <= 10;

Diyelimki minimum object_id verisinde UPDATE yapacağız.Hangisiymiş bulalım 

select min(object_id) from ttest;

min(object_id) 
3

declare
ttest_row ttest%rowtype;
begin
  ttest_row.object_id := 111;
  ttest_row.object_name := ‘XXX’;
  ttest_row.object_type := ‘???’;
  update ttest set row = ttest_row where object_id = 3;
  commit;
end;

Kontrol edelim :

select * from ttest where object_id = 111
object_id  object_name   object_type
111            XXX                 ???

Diğer bir konuda DEFUALT anahtar kelimesinin kolonlardaki kullanımına dair.Tabloda insert ya da update yaparken kolonun varsayılan değerini kullanmak isteyebilirz.Örnek olarak yukarıda oluşturduğumuz TTEST tablosunun “object_type” kolonuna varsayılan değer olarak ‘NEW_TYPE’ atayalım ve akabinde insert-update ile kullanalım :

SQL> alter table ttest modify object_type default ‘NEW_TYPE’;Table altered.

::: insert Örneği :::

SQL> insert into ttest values(999,’A_TABLE’, default);1 row created.SQL>
SQL> select * from ttest where object_id  = 999;
OBJECT_ID  OBJECT_NAME   OBJECT_TYPE
999               A_TABLE             NEW_TYPE

::: UPDATE örneği :::

SQL> update ttest set object_type = default where object_id = (select min(object_id) from ttest);1 row updated.SQL>
SQL> select * from ttest where object_id = (select min(object_id) from ttest);

OBJECT_ID   OBJECT_NAME   OBJECT_TYPE
15                 UNDO$                   NEW_TYPE

One Response to “ROWTYPE kullanarak satır update etme ve kolonlarda DEFAULT anahtar kelimesi”

  1. sozluk said

    tesekkürler.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.