search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
1.5k gösterim
REPLACE ve REGEXP_REPLACE fonksiyonu nasıl kullanılıyor?

Veri query oluştururken ve update işlemi yaparken de kullanabilir miyiz. Peformans açısından da bir kıyaslama mümkün müdür?

select   REPLACE(.....) veya REGEXP_REPLACE(...., .., ..)    from table;

update  table set column = REPLACE(.....) veya REGEXP_REPLACE(...., .., ..)
Veri Tabanı kategorisinde 2.0k puan

1 cevap

0 oy
Önce kısa açıklamayla başlayalım.

İki fonksiyon da bir metin içindeki karakterleri verilen karakterlerle değiştirmeye yarar.

Replace direk olarak verilenleri değiştirmekle beraber. Adından da anlaşıldığı üzere regexp_replace metnin içindeki değiştirilecek olan karakterleri regex kullanarak belirlemeye yarar.

Performans açısından direk cevap veremiyorum. Keza replace daha basit bir implementasyon oluyor. Kısa metinlerde hem memory hem de işlemci tarafında taha basit olduğu için hızlı olması muhtemel. Metin uzadıkça nasıl performans gerçekleştirirler biraz tecrübe etmek gerekiyor.

Normal veri işlemede pek de uzun metinler üzerinde çalışmadığımız için (relational dbler üzerindeki sorgulardan bahsediyorum) arasında performans açısından pek fark görmeyeceksin diye bekliyorum.

Regex_replace çalıştırırken regex hatalı olduğu için çok küçük metinlerde dahi sistemi kilitlediğini ve cevap veremez şekle getirdiğini birçok kez tecrübe ettim.
6.2k puan

İlgili sorular

0 oy
1 cevap 3.3K gösterim
3.3K gösterim
Selam, PL/SQL de bir datanın içindeki space karakterlerini (boşluk) kaldırılmış olarak almak istiyorum. not:trim yemedi :D Nasıl bir yöntem izlemeliyim.
14 Şubat 2017 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 1.1K gösterim
1.1K gösterim
Veritabanı üzerindeki bir tabloda DELETE komutu çalıştırmakla TRUNCATE çalıştırmak arasında nasıl bir fark vardır? Diskte tutulan yer anlamında nasıl bir sonuç ortaya çıkıyor?
11 Şubat 2019 Veri Tabanı kategorisinde yildiz 193 puan sordu
0 oy
2 cevap 2.1K gösterim
2.1K gösterim
Veri tabanında bir tabloyu truncate etmeye çalışırken "ora-00054 kaynak meşgul ve nowait" hatası aldım. Nasıl tabloyu truncate ederim, locked halini nasıl kill ederiz. delete from table_name yapınca silebilmiştim. Denk mi geldi pek bilmiyorum.
15 Ağustos 2018 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
1 oy
1 cevap 1.3K gösterim
1.3K gösterim
oracle'da nextval ve interval nedir? Nasıl kullanılır?
23 Temmuz 2018 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 676 gösterim
676 gösterim
Oracle veri tabanında bazı tabloların PrimaryKey'leri ve bununla bağlantılı ForegeinKey'leriin disabled olduğunu gördüm. listesini çekmeye çalıştım şu query ile; select * from user_constraints t where t.status <> 'ENABLED' and t.CONSTRAINT_TYPE = 'R'; ancak tek ... disabled-invalid gözüküyor. Bir hata almıştım şöyle ORA-02270: bu sütun listesine karşılık gelen bnezersiz veya birincil anahtar yok"
30 Nisan 2018 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu