数据库 2010-05-09 11:08:55 阅读129 评论0 字号:大中小 订阅
服务器上的 Oracle 10g 使用中文字符集,所以按照如下的日期格式插入时,会提示你 ORA-01843 的错误。
SQL> Insert into BOOKSHELF_CHECKOUT
values
('DORAH TALBOT','MY LEDGER','15-FEB-02','03-MAR-02');
ORA-01843: not a valid month
要解决这个问题,可以在修改当前会话的 NLS_DATE_LANGUAGE 和 NLS_DATE_FORMAT,方法如下
SQL>alter session set nls_date_language='AMERICAN';
Session altered
当然如果要自定义日期格式,可以使用以下命令自定义:
SQL> alter session set nls_date_format = 'DD-MON-YYYY';
Session altered
然后再次Insert into:
SQL> Insert into BOOKSHELF_CHECKOUT
values
('GERHARDT KENTGEN','MIDNIGHT MAGIC','05-FEB-02','10-FEB-02');
1 row inserted