di Oracle, tidak selamanya kita bisa memparsing suatu data hanya dengan mengandalkan SUBSTR,apalagi jika pola datanya beraneka ragam.
contoh: ada sebuah data dengan pola "FBIP_100K","FBIP_65K" dan kita ingin menkonversi menjadi bilangan yang dikali 1000, sehingga FBIP_100K diharapkan menjadi 100000 dan FBIP_65K menjadi 65000.
Jika polanya masih seragam, masih bisa kita parsing dengan metode SUBSTR yang dipadukan dengan fungsi length di Oracle.
Tapi jika datanya beraneka ragam pola(namun selalu diakhiri dengan bilangan yang diikuti sebuah karakter A-Z), tentunya sangat sulit jika menggunakan substr. contoh raw datanya adalah "FBIP_65K,FBIP1R_100K,FBIP220K".
Beruntungkan di Oracle ada fungsi Regex (Regular Expression) sehingga kita bisa memparsingnya. namun terlebih dahulu, kita harus mengetahui polanya. kebetulan polanya adalah "Bilangan yang akan diambil selalu diikuti oleh karakter K"
Jadi Querynya sebagai berikut :
SELECT REGEXP_SUBSTR('FBIP_65K','[0-9]*[K|M]$') FROM dual --> 65K
SELECT REGEXP_SUBSTR('FBIP1_165K','[0-9]*[K|M]$') FROM dual --> 165K,
lalu tinggal di Replace aja 'K' -> '000'
tapi,sayangnya fungsi regex ini hanya tersedia di Oracle 10

