Ingatlah bahwa Anda mengubah angka menjadi string. Nomor tersebut tidak memiliki arti "," atau "." atau apa pun--itu adalah angka.
Caranya adalah dengan mendapatkan TO_CHAR
berfungsi untuk mengonversi angka internal ke representasi string yang Anda inginkan. Ada beberapa masalah yang perlu dikhawatirkan:mendapatkan titik radix (desimal) yang benar dan menangani padding.
Berikut adalah contoh kerja:
SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
0,00235
SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
156,45823
SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-0,0235
SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-156,45623
SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
123456789,45623
Bagian topeng yang relevan:
FM
digunakan untuk memangkas bagian awal dan akhir yang biasanya digunakan Oracle untuk menambahkan angka.
D
adalah titik radix, tergantung pada pengaturan NLS Anda.
NLS_NUMERIC_CHARACTERS ...
adalah penggantian pengaturan NLS lokal Anda--ini mungkin tidak diperlukan jika lokal Anda menggunakan koma untuk desimal, tetapi ini adalah cara Anda dapat memaksakan perilaku ini dalam database dengan, katakanlah, pengaturan Amerika Utara.