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

在sqlplus中,输入月份为8月份时无法插入,sql,oracle,insert,oracle11g,sqlplus,Sql,Oracle,Insert,Oracle11g,Sqlplus,我有一个表,其中有一个日期数据类型的字段。每当我尝试插入八月的记录时,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 valu

我有一个表,其中有一个日期数据类型的字段。每当我尝试插入八月的记录时,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数据时,它才会出错


请帮助

您应该使用默认日期格式,但要明确指定:

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');

这仍然不是100%的故障安全。使用不同的语言设置,这仍然可能失败,因为它并不总是8月。使用数字而不是本地化的月份更安全names@a_horse_with_no_name好的一点-我在回答中加入了这个警告。桌子上有触发器吗?