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