插入SQL表数据报ORA-00907缺失右括号错误如何解决
错误产生原因
- 该错误属于Oracle数据库语法报错:Oracle中
SYSDATE是内置无参系统日期函数,调用时不允许在函数名后添加括号。写法sysdate()不符合Oracle语法规范,SQL解析器会将sysdate后的(识别为函数参数列表的起始标记,无法找到匹配的闭合标识时,就会抛出ORA-00907: missing right parenthesis错误。 - 语句中存在一处冗余逻辑:
SYSDATE本身返回值即为DATE类型,外层嵌套的TO_DATE()函数无实际作用,多余的类型转换包裹还可能触发隐式格式转换异常。
修正方案
修正语法错误、移除冗余函数后即可正常执行数据插入,调整后的SQL语句如下:
INSERT INTO CourierBooking VALUES (1001, 230, SYSDATE - INTERVAL '77' DAY, 'MUMBAI', 'delhi', 'HIGH', 300.0, 'BOOKED');
补充说明:Oracle中DATE类型直接加减整数时,计算单位默认为天,因此日期计算部分也可以简写为SYSDATE - 77,与上述INTERVAL写法执行效果完全一致。
内容的提问来源于stack exchange,提问作者Amer Khan
相关产品推荐
相关产品推荐

