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.