19 Temmuz 2007

Sql Server'dan Oracle'a Geçiş

Yazılım projelerinde veritabanı olarak Oracle ve Sql Server hatırı sayılır bir büyüklüğe sahiptir. Bu nedenle bir çoğumuz iki veritabanıyla da uğraşmak durumunda kalabiliriz. Sql Server'da iyi derecede olup Oracle'a geçişi kolaylaştırmak için başlangıç düzeyindeki farkları yazmanın faydalı olacağını düşündüm. Verdiğim tüm örneklerde Sql Server ifadelerini büyük harflerle Oracle ifadelerini küçük harflerle yazacağım.

Öncelikle çok kullanılan bir kaç fonksiyona bakalım;
GETDATE() - sysdate
ISNULL - nvl
CONVERT(VARCHAR,x) - to_char(x)
CONVERT(DATETIME,x) - to_date(x)
LEN - length
+ -

SELECT * INTO NEW_TABLE FROM TABLE şeklindeki SELECT INTO kalıbı yerine Oracle'da create table new_table as select * from table ifadesini kullanabiliriz.

İki tarih arasındaki fark için kullandığımız DATE_DIFF in direk karşılığı Oracle'da yok. date_diff_month(date1,date2) fonksiyonuyla ay farkını alabiliriz. Ayrıca date2-date1 ifadesi direk olarak gün cinsinden sonuç vereceği için gün farkı için bunu kullanabiliriz.

Değişken tanımlamada
DECLARE @a
INTEGER SET
@a=3
şeklindeki ifade Oracle'da
declare a number;begin a := 3;end;

Sql Server'da bir objeden bağımsız olarak SELECT 1 şeklinde bir sorgulama yapabiliriz. Oracle'da ise dummy table olarak adlandırılan DUAL tablosundan sorgulama yapmamız gerekecektir.
select 1 from dual

4 yorum:

aynur dedi ki...

iyi gunler
toad for oracle programinda iki farkli tarihin arasini nasil bulabiliriz tesekkurler

ömer arslan dedi ki...

Oracle'da create new_table as select * from table ifadesini kullanabiliriz. Burası
"create table new_table as select * from table" olması gerekli. teşekkürler yazın için.

Harun PEKŞEN dedi ki...

Evet gözümden kaçmış, teşekkür ederim düzeltme için.

Anar dedi ki...

Merhaba.
Ben Oracle guvenligi ve SqlServer guvenligi arasindaki farkliliklar hakkinda makale yazmak istiyorum. Ama inetrnette konuyla ilgili makaleler hic bulamiyorum. Bana bu konuda yardim etseniz cok sevinirim