Forum

Tek Satır Halinde S...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Tek Satır Halinde SQL Kodunun İçinden -- ile Başlayan Yorum Satırını Kaldırmak Mümkün Müdür?

5 Yazılar
2 Üyeler
2 Reactions
9,696 Görüntüleme
(@OktayBOZDEMiR)
Gönderiler: 90
Estimable Member
Konu başlatıcı
 

Veritabanı olarak Oracle, ETL olarak SSIS kullanmaktayım. Veritabanı bir tabloda tutulan SQL kodunu SSIS'te değişkene aktarıyorum. Fakat SQL kodunun içinde -- ile başlayan yorum satırları var. Şimdilik belli yorum satırlarını "" ile replace yaptım. Fakat otomatik olarak bu işlemi yapabilmek istiyorum. Satır bitimleri olarak \n karakter kodunu not defteri dosyası bize göstermiyor fakat substring yada instr gibi fonksiyonlar kullansam, -- başlayan yorum satırını /* ile değiştebilirim fakat bir alt satır kodunu "*/ \n" olarak değiştirebilir miyim? Yani bir alt satır kodunu nasıl bulabilirim?

Tablodaki SQL kodunu değişkene aktardığım zaman, değişkendeki satır aşağıdaki gibi tek satır olarak görünüyor. Aslında SSIS Watch ekranında  --yeni talep\n olarka görüyorum fakat yinede sorguyu SSIS'te çalıştırdığım zaman -- itibaren sorgunun devamı yorum satırı olarak algılandığı için hata vermektedir.

SELECT TARIH, MUSTER, --yeni talep TUTAR FROM TABLE

 
Gönderildi : 23/04/2020 01:04

(@OktayBOZDEMiR)
Gönderiler: 90
Estimable Member
Konu başlatıcı
 

Bir alt satıra geçme kodu olan \n kaçıcı karakter olduğunu Oracle'da nasıl bulabilirim? Yada line sonunu substr/replace içinde nasıl kullanabilirim?

 
Gönderildi : 23/04/2020 13:51

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

Selam,

Bunun için REGEXP_REPLACE kullanabilirsin. Şu örneği inceler misin:  https://livesql.oracle.com/apex/livesql/file/content_EWIG7YMJ5XTKLNEQ77I6JV5EW.html

 
Gönderildi : 23/04/2020 14:53

(@OktayBOZDEMiR)
Gönderiler: 90
Estimable Member
Konu başlatıcı
 

Sorgumda aşağıdaki regexp komutunu kullandım fakat sorgumun genel yapısını bozdu. Örneğin bir fonksiyon var ve fonksiyonun başında - yazıyor yani fonksiyondan dönen sonucu -1 ile çarpılmış olarak gösteriyor. Başındaki - gitti. bazı " işaretleri gitti. Sorgu temiz bir sorgu değil, kolon çıktılarında türkçe karakter kullanılmış, örneğin MUSTERI yazmak yerine SELECT'teki kolon çıktısına "Müşteri" yazılmış gibi. Bazı çift tırnak ifadeleride silinmiş oldu. Aşağıdaki regexp komut çözüm olmadı.

regexp_replace(trim(query), '--[^\r\n]*', '')

https://www.postgresql.org/message-id/56311C52.3000907%40wolman.co.uk

https://larrysteinle.com/2011/02/09/use-regular-expressions-to-clean-sql-statements/

Bu ileti 5 yıl önce Oktay BOZDEMİR tarafından düzenlendi
 
Gönderildi : 23/04/2020 15:49

(@OktayBOZDEMiR)
Gönderiler: 90
Estimable Member
Konu başlatıcı
 

Aşağıdaki ifade ile yorum satırlarını kaldırabildim. Teşekkürler.

REGEXP_REPLACE(TRIM(sqlkodu), '--.+'||CHR(10), CHR(10));

 
Gönderildi : 29/04/2020 11:21

Paylaş: