alter system set nls_date_format='dd-mm-yyyy' scope=spfile;
terus shutdown db
kemudian startup db

moga membantu

--- In [email protected], Padang Nadimpu <nadi...@...> wrote:
>
> Halo Master-master Oracle
> 
> Dari berbagai info via internet, diperoleh tahapan solusi "not a valid 
> month", sbb :
> (lewat jendela cmd diakses database, dan dalam kasus ini menggunakan oracle9i)
> 
> sqlplus /nolog
> conn / as sysdba
> 
> SHOW PARAMETER NLS_DATE_FORMAT;
> SELECT SYSDATE FROM DUAL;
> 
> NAME                          TYPE        VALUE
> ----------------------------- ----------- --------
> nls_date_format               string
> 
> Info berikutnya, jika nilai (value) parameter nls_date_format NULL maka 
> format tanggal akan mengunakan format default yang ada di dictionary 
> DATABASE_PROPERTIES
> 
> Untuk mengubah format tanggal level database, maka perlu diedit parameter 
> file dgn menambahkan NLS_DATE_FORMAT. 
> Lokasi parameter file ada di $ORACLE_HOME\admin\nama_SID\pfile\init.ora
> 
> Merujuk info tsb, kami mengedit file init.ora dgn Notepad serta menambahkan 
> (ketik) NLS_DATE_FORMAT='DD-MM-YYYY'
> kemudian Simpan dan keluar
> 
> Tahap berikutnya, database di-startup 
> 
> SHUTDOWN ABORT;
> STARTUP PFILE=D:\Oracle\Oradata\karyawan\pfile\init.ora.10192009182733
> 
> startup database sukses, selanjutnya eksekusi show parameter nls_date_format 
> sbb :
> 
> SHOW PARAMETER NLS_DATE_FORMAT;
> SELECT SYSDATE FROM DUAL;
> 
> NAME                          TYPE        VALUE
> ----------------------------- ----------- --------
> nls_date_format               string      DD-MM-YYYY
> 
> Info di atas menunjukkan telah sukses menambahkan parameter 
> NLS_DATE_FORMAT='DD-MM-YYYY'
> 
> Tahap berikutnya, diakses user database utk eksekusi query select, sbb :
> 
> sqlplus /nolog
> conn username/passw...@hostsstring
> 
> select count(*) from karyawan
> where ((floor(months_between('01-01-2010',tgl_lhr)/12)>=50);
> 
> hasil eksekusi :
> 
> select count(*) FROM karyawan
> where ((floor(months_between('01-01-2010',tgl_lhr)/12)>=50)
>                              *
> ERROR at line 2:
> ORA-01843: not a valid month
> 
> Mohon sulosi tuntas, agar eksekusi query select TIDAK HARUS DIAWALI DGN 
> alter session set nls_format='dd-mm-yyyy';
> 
> Atas pencerahan solusi diucapkan terimakasih.
>


Kirim email ke