REPLACE ile SQL Sorgu Sonuçlarını Değiştirmek |
Replace fonksiyonu tüm orta ve yüksek seviyeli programlama dillerinde bulunan ve metinlere uygulanan belirli bir metin parçasını başka bir metin parçasıyla değiştirmek için kullanılan fonksiyondur. Örnek vermem gerekirse metin içerisinde İstanbul yerine İtsanbul yazdıysanız Replace fonksiyonu ile bu hatayı yaptığınız metin içerisinde düzeltmeleri yapabilirsiniz.
Replace fonksiyonu SQL içinde de uygulanabilir ve bu makalemde Oracle için replace fonksiyonun nasıl kullanıldığını anlatmaya çalışacağım. Genel olarak Replace fonksiyonunu SQL için iki ihtiyaçtan kullanmamız gerekebilir. Bunlardan birincisi SQL sorgu sonuçlarını manipüle etmek yani değiştirmek için, diğeri ise veritabanına yanlış yazılmış verileri düzeltmek için. Makalemde bu iki konuyu da anlatacak örnekler vermeye çalışacağım.
Öncelikle select'le başlayalım. Örneğimiz için basit yazacağım. Yapacağımız sorguyu iller tablosuna yapacağım ve iller tablosunda kullanılan İ karakterini I karakteri ile değiştireceğim. Bu işlem için kullandığım sorgu aşağıdaki gibi olacaktır.
SELECT
KODU, REPLACE(ADI, 'İ', 'I') ADI
FROM IL ORDER BY KODU
REPLACE fonksiyonu ile sorgu sonuçlarını nasıl değiştireceğimiz gördükten sonra biraz da Replace fonksiyonunun genel yapısından bahsetmek istiyorum. Replace fonksiyonu yukarıda da görüldüğü gibi 3 parametre alır. Bu parametrelerden birincisi hangi metnin değiştirileceği, ikinci kısım hangi metin parçasının değiştirileceği, üçüncü ise hangi metinle değiştirileceğidir.
Yukarıda select kullanarak sorgu sonuçlarını nasıl değiştireceleğini gördüğümüz için buradan bu verileri nasıl kalıcı olarak değiştirebileceğimiz sorusu ortaya çıkar. Bunun için yapacağımız işlem de UPDATE komutunu düzenlemek olacaktır. Örneğimiz için yukarıdaki sorgu sonucunu kalıcı hale getirmek istersek yazmamız gereken sorgu aşağıdaki gibi olmalıdır.
UPDATE IL
SET ADI=REPLACE(ADI, 'İ', 'I')
WHERE KOD=34
Denemelerinizi yapabilmeniz için de özellikle sonuna kod=34 yazdım. Çünkü geri almak isterseniz bunları elle yapmanız gerekebilir.
Önemli Not: Replace fonksiyonu çok tehlikeli bir fonksiyondur. Sorgulama yaparken önemli olmasa da verileri UPDATE ile değiştirecekseniz çok dikkatli olmalısınız. Aynı zamanda değiştirme işleminde oluşabilecek tüm durumları dikkate alarak sorguyu çalıştırın ve hatta sorguyu çalıştırdıktan sonra bir daha select yaptıktan sonra COMMIT'leyin...
Bu kısa makalemde Oracle'da Replace fonksiyonun nasıl kullanılacağını örneklerle anlatmaya çalıştım. Makelenin sonunda da belirteyim ki Replace fonksiyonunu UPDATE içinde kullanacaksanız çok dikkatli olun...
Umarım yazım faydalı olmuştur...
Yorumlar
Yorum Gönder