在sqlplus中输入月份为8月时无法插入

时间:2014-04-12 16:22:30

标签: sql oracle insert oracle11g sqlplus

我有一个表格,其中包含一个日期数据类型的字段。每当我尝试插入一个月份为8月的记录时,sqlplus会给出错误

insert into hcheckin values ('T00003','C00003',to_date('11-AUG-2006'),'0800');

这是错误消息:

ORA-01858: a non-numeric character was found where a numeric was expected

但是当我输入这条记录时:

insert into hcheckin values ('T00001','C00001',to_date('08-JUN-2006'),'0900');

没有错误。我也试过了其他几个月。当我用AUG插入一个月的数据时,它只会出错。

请帮忙

1 个答案:

答案 0 :(得分:0)

您应该依赖默认日期格式,但明确指定:

INSERT INTO hcheckin 
VALUES ('T00003', 'C00003', TO_DATE('11-AUG-2006', 'DD-MON-YYYY'), '0800');

根据@ a_horse_with_no_name的评论,更安全的方法是使用数字而不是月份名称(或其缩写):

INSERT INTO hcheckin 
VALUES ('T00003', 'C00003', TO_DATE('11-08-2006', 'DD-MM-YYYY'), '0800');