[Oracle] Split

Bazı durumlarda gelen değeri virgüllere ayırarak string şeklinde parametre geçeriz ki içeride virgüllerinden ayırarak bir dizi elde ederiz. Bunun C# ve JavaScript’deki karşılığı Split fonksiyonudur. Peki bu olay Oracle’da nasıl ?

Bu makale ile regexp_substring fonksiyonunun kullanımını anlatacağım. ( 10g ve üzeri için geçerlidir.)

Örneğin elimizde ‘1,2,3,4,5’ şeklinde bir string olsun. Bu string’i select içinde virgüllerine ayırıp 1,2,3,4,5 değerleri için kullanma gereksinimi duyduk.

select
    regexp_substr('1,2,3,4','[^,]+', 1, level)
  from dual
    connect by
      regexp_substr('1,2,3,4', '[^,]+', 1, level) is not null;

Bu şekilde ‘1,2,3,4’ şekilde yazan yere parametre geçerek istediğiniz bir tabloda sorgu yapabilirsiniz.