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?  

  RSS
Oktay BOZDEMİR
(@OktayBOZDEMiR)
Üye

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

Alıntı
Gönderildi : 23/04/2020 01:04
Oktay BOZDEMİR
(@OktayBOZDEMiR)
Üye

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?

CevapAlıntı
Gönderildi : 23/04/2020 13:51
Volkan Alkılıç
(@volkanalkilic)
Üye

Selam,

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

CevapAlıntı
Gönderildi : 23/04/2020 14:53
Oktay BOZDEMİR
(@OktayBOZDEMiR)
Üye

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 ay önce Oktay BOZDEMİR tarafından düzenlendi
CevapAlıntı
Gönderildi : 23/04/2020 15:49
Oktay BOZDEMİR
(@OktayBOZDEMiR)
Üye

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

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

CevapAlıntı
Gönderildi : 29/04/2020 11:21
Hakan Uzuner beğendi
Paylaş: