我试图从用户输入中将日期插入表中,但某些操作不起作用。无法将字符串转换为Oracle 11g中的日期
我有以下查询:
INSERT INTO DOCTORS.TREATMENTS
(START_OF_TREATMENT, END_OF_TREATMENT, DOCTORS_ID,PACIENTS_ID, DIAGNOSIS_ID)
VALUES (TO_DATE(&startdate, 'yyyy/mm/dd'), TO_DATE(&enddate, 'yyyy/mm/dd'), 3, 1, 1);
开始日期我设置:
2000年10月1日
而对于结束日期,我设置:
2000/11/01
这似乎确定了我,但我已经得到了以下错误:
错误报告 - ORA-01858:一个非数字字符被发现,其中一个数字预计 ORA-06512 :在“SYS.STANDARD”,第167行 ORA-06512:在第2行 01858. 00000 - “在预期数字的位置发现了一个非数字字符” *原因:要使用日期转换的输入数据格式模型是 不正确。输入数据不包含格式模型所需的号码为 的数字。 *操作:修复输入数据或日期格式模型以确保 元素在数量和类型上匹配。然后重试该操作。
任何人都可以向我解释为何发生此错误。
此致敬礼, Petar。
这两个字段的类型都是Date。 –
'2000/10/01 == 200' – Bohemian
你确定这是你得到的错误信息吗?我尝试了这个表达式(没有缺少单引号,请参阅Bob的答案),并且我得到了一个不同的错误消息,ORA-01840,*输入值不够长,不适合日期格式。*的确,这是我期望的消息,因为 - 正如@波希米亚所说 - 甲骨文将首先用数字200代替你给它的表达。鲍勃给了你正确的方式来纠正你的代码,但为什么你得到了错误,你做的仍然不清楚。 – mathguy