Oracle SQL Developer – Scratch Editör

Herkese Selam,
oraclesqldeveloperBu yazıda sizlere Oracle SQL Developer’ın migration alt yapısı ile sunulan Scratch Editör modülünden basedeceğim. Umarım farkındalık anlamında faydalı bir yazı olur.

Oracle SQL Developer’ın güçlü yanlarından biride Oracle olmayan veritabanlarından Oracle veritabanına migration için güçlü bir alt yapı sunması. Bu alt yapı içinde birden fazla özellik bulunmakta ama ben bu yazıda oldukça kullanışlı bulduğum Scratch Editör’den bahsedeceğim.

Scratch Editör alt yapısı None-Oracle (MsSQL,Teradata, Access, Sybase, DB2) sistemlerde yazılmış SQL/Procedurel SQL kodlarını Oracle SQL/PLSQL kodlarına çevirme işlemini gerçekleştiriyor. Böylelikle None-Oracle sistemlerden Oracle bir sisteme migration yapma ihtiyacınız gündeme geldiğinde veritabanı içerisinde yazmış olduğunuz uygulama kodlarını hızlı bir şekilde Oracle SQL/PLSQL notasyonuna çevirebilmeye olanak sağlıyor.

Şimdi Scratch Editöre nasıl erişildiğine bakıp bir kaç örnek yapalım.

Scratch Editöre, Tools –> Migration –> Scratch Editor yolunu izleyerek ulaşabiliyoruz. scratcheditor1

 

Scracth Editör açıldıktan sonra aşağıdaki gibi bir ekran açılıyor şimdi bu ekranın nasıl kullanıldığına bakalım.

scratcheditor2

 

Resimdeki numaralandırılmış alanları açıklayacak olur isek;

  1. Dönüşümü hangi dilden Oracle’a doğru yapacağımızı seçtiğimiz combobox.
  2. Dönüşümünü yapacağımız source kodu yazdığımız alan.
  3. Source kodu yazdıktan sonra çevirme işlemini başlatacağımız düğme.
  4. Dönüşüm sonunda sonucun oluştuğu alan.
  5. Oluşan kodun seçili Oracle DB’de çalıştırılmasını sağlayan düğme.

Şimdi bir kaç örnek ile nasıl çalıştığına bakalım;

İlk olarak MSSQL’de yazmış olduğum, içerisinde MSSQL’e has fonksiyonların kullanıldığı SQL cümlelerini Oracle’a çevirmeyi deneyeceğim.

MSSQL
---------------------------------------------------
SELECT ISNULL(EMPLOYEE_ID,1) FROM HR.EMPLOYEES; 

SELECT TOP 5 * FROM HR.EMPLOYEES;

SELECT FIRST_NAME + ' ' + LAST_NAME FROM HR.EMPLOYEES;

SELECT LEN(FIRST_NAME), GETDATE() FROM HR.EMPLOYEES;

SELECT SUBSTRING(FIRST_NAME,CHARINDEX('EM',FIRST_NAME),25) 
FROM EMPLOYEES;

Dönüşüm işlemi yapıldıktan sonra oluşan sonuçlar

Oracle
-------------------------------------------------------
SELECT NVL(EMPLOYEE_ID, 1) FROM HR.EMPLOYEES;

SELECT * FROM HR.EMPLOYEES WHERE ROWNUM <= 5;

SELECT FIRST_NAME || ' ' || LAST_NAME FROM HR.EMPLOYEES;

SELECT LENGTH(FIRST_NAME) , SYSDATE FROM HR.EMPLOYEES;

SELECT SUBSTR(FIRST_NAME, INSTR(FIRST_NAME, 'EM'), 25) 
FROM EMPLOYEES;

scratcheditor3

 

Evet gördüğümüz üzere MSSQL’e has fonksiyonların düzgün bir şekilde Oracle SQL’e çevrildiğini gözlemledik.

Şimdi birde MSSQL tarafında yazılmış bir stored procedure’ü Oracle’a çevirme işleminin nasıl dönüştüğüne bakalım.

MSSQL
-----------------------------------------------
CREATE PROC usp_KategoriUrunAdet
(@KategoriID int)
AS
BEGIN
    DECLARE @adet int;
 
    SELECT @adet=COUNT(ProductID) 
    FROM Production.Product
    WHERE ProductSubcategoryID=@KategoriID;
 
    RETURN @adet
END

//kod parcasini asagidaki sayfadan edindim.
//http://www.yazilimdilleri.net

Dönüşüm işlemi yapıldıktan sonra oluşan sonuç.

Oracle
------------------------------------------------
CREATE OR REPLACE FUNCTION usp_KategoriUrunAdet(
    v_KategoriID IN NUMBER )
  RETURN NUMBER
AS
  v_adet NUMBER(10,0);
BEGIN
  SELECT COUNT(ProductID)
  INTO v_adet
  FROM Production.Product
  WHERE ProductSubcategoryID = v_KategoriID;
  RETURN v_adet;
EXCEPTION
WHEN OTHERS THEN
  utils.handleerror(SQLCODE,SQLERRM);
END;

scratcheditor4

Evet dönüşümün başarılı bir şekilde olduğunu sonuçlardan gözlemleyebildik.

Oracle SQL Developer’ın Scratch Editörü görüldüğü üzere non-oracle bir sistemde yazılmış uygulamaları Oracle veritabanına uyarlamada bize oldukça kolaylıklar sağlıyor. Çok karmaşık uygulamaların dönüşümlerinde ne kadar başarılı olduğu test etmek için gerçek bir migration yapmak gerekir ancak %100 başarım sağlayamadığı durumu düşündüğümüz ihtimalde dahi editörün yaptığı çevirim ile uygulamanın tamamını yeniden yazmak zorunda kalmayacağımızı söyleyebiliriz.

Advertisements

About ... from Emrah METE

Bilgisayar Mühendisi
This entry was posted in Oracle, Uncategorized and tagged , , , , , , , , , , , , , . Bookmark the permalink.

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 )

Google+ photo

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

Connecting to %s