Monday, January 8, 2007

แก้ปัญหา ORA-01843: not a valid month ใน Oracle เครื่องภาษาไทย

ช่วงนี้เรียน Oracle ที่มหาลัย
แอบจะบ้าตาย เพราะว่า import sql statement ไม่ได้ .. .

คำถามว่า .. เพราะอะไร .. .


SQL> select to_date('20-JAN-06') from dual;
select to_date('20-JAN-06') from dual
*
ERROR at line 1:
ORA-01843: not a valid month


อะอะ .. ไปเจอบนหน้า http://www.cryer.co.uk/brian/oracle/ORA01843.htm


alter session set nls_date_format='DD-MON-YY';


พอเสร็จ นึกว่าจะใช้ได้แล้ว ..
แต่ก็ยังเจอปัญหาเดิม !


SQL> select to_date('20-JAN-06') from dual;
select to_date('20-JAN-06') from dual
*
ERROR at line 1:
ORA-01843: not a valid month


คราวนี้เลยลอง select session มาดู


select * from nls_session_parameters;


เจออันนี้ แปลกๆ ที่สุด !


PARAMETER
-----------------

VALUE
-----------------

NLS_DATE_FORMAT
DD-MON-YY

NLS_DATE_LANGUAGE
THAI

NLS_SORT
THAI_DICTIONARY


ก็เลยจัดการซะเลย


ALTER session SET NLS_DATE_LANGUAGE='ENGLISH';


ปรากฎว่า ใช้ได้ !


สรุปคือ ปัญหาของมันอยู่ที่ภาษาเท่านั้นเอง
เราจะตั้งเป็น permanent ได้ไหมหว่า .. .

1 comment:

แมว said...

หาวิธีแก้ปัญหาอยู่พอดีครับ ใช้ได้จริง ๆ ด้วย ขอบคุณมากครับ