Kang Oyib wrote:
>
>
> Trimakasih pak Awaluddin, text file sudah bisa masuk ke tabel.
> Ada sedikit pertanyaan, apa fungsi NLS_NUMERIC_CHARACTERS pada select
> tersebut, karena dari select diatas saya hilangkan
> NLS_NUMERIC_CHARACTERS dan tetap bisa terinput.
>
> Regards
>
> Oyib
>
> .

Jika session menggunakan default thousand separator (karakter ',') dan 
decimal separator (karakter '.'), maka parameter
NLS_NUMERIC_CHARACTERS akan mengubah karakter tsb (contoh sebelumnya 
decimal separator menjadi ',' dan thousand
 separator menjadi '.').
Jika tanpa parameter NLS_NUMERIC_CHARACTERS di tempat saya akan return 
error karena thousand dan decimal separator-nya masih default:
SQL> SELECT TO_NUMBER('18.750.000,45','999G999G999G999D99') txt_to_num
  2  FROM DUAL;
SELECT TO_NUMBER('18.750.000,45','999G999G999G999D99') txt_to_num
                 *
ERROR at line 1:
ORA-01722: invalid number

Tetapi jika text yang diinput dibuat sesuai dengan default separator-nya 
maka tidak akan return error :
SQL> SELECT TO_NUMBER('18,750,000.45','999G999G999G999D99') txt_to_num
  2  FROM DUAL;
          TXT_TO_NUM
--------------------
         18750000.45

Jadi ada kemungkinan default separator di tempat anda sudah diubah.

CMIIW,
AH

Kirim email ke