Dear, Format default date di oracle yaitu : "DD-MON-YYYY" contoh : "01-JAN-2010"
hmm ganti saja '01-01-2010' menjadi '01-JAN-2010' mestinya dengan begitu sudah ok .. CMIIW thanks.. "Gapailah cita-citamu setinggi langit karena jika kau meleset sekalipun, kau akan tetap berada diantara bintang-bintang" --- Pada Kam, 4/2/10, Padang Nadimpu <[email protected]> menulis: Dari: Padang Nadimpu <[email protected]> Judul: [indo-oracle] Solusi tuntas "ORA-01843: not a valid month" Kepada: [email protected] Tanggal: Kamis, 4 Februari, 2010, 1:14 PM 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.101920091827 33 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/password@ 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. Berselancar lebih cepat. Internet Explorer 8 yang dioptimalkan untuk Yahoo! otomatis membuka 2 halaman favorit Anda setiap kali Anda membuka browser. Dapatkan IE8 di sini! http://downloads.yahoo.com/id/internetexplorer [Non-text portions of this message have been removed]

