ORA-00932错误:插入日期数据时类型不匹配问题求助
ORA-00932错误原因解析
核心问题是INSERT语句的字段顺序和表结构的字段顺序不匹配:
reserves表定义的字段顺序是:day(DATE)→sid(INT)→bid(INT)- 但你执行的INSERT语句里,值的顺序是:
sid(22,数字类型)→bid(103,数字类型)→日期值
数据库会严格按照表字段的定义顺序依次匹配插入值,所以第一个插入值22会被对应到表的第一个字段day(DATE类型),这就直接触发了ORA-00932: inconsistent datatypes: expected DATE got NUMBER错误。
修正方案
推荐在INSERT语句中明确指定字段名(避免依赖顺序,代码更健壮):
INSERT INTO reserves (sid, bid, day) VALUES (&sid, &bid, TO_DATE('&date', 'MM/DD/YY'));
也可以调整值的顺序,完全匹配表结构的字段顺序:
INSERT INTO reserves VALUES (TO_DATE('&date', 'MM/DD/YY'), &sid, &bid);
内容的提问来源于stack exchange,提问作者Aakash P
相关产品推荐
相关产品推荐

