Oracle Forms Builder中INSERT语句使用子查询的正确语法
问题解决:INSERT语句Error 103错误修正
错误原因:你在VALUES子句里嵌套了SELECT子查询,部分数据库(比如Oracle)不支持这种写法,触发了Error 103。
修正后的SQL代码如下:
INSERT INTO vehicle ( vehicleid, reg_no, year, fuel, engine_capacity, transmission, seat_capacity, rice_per_day, modelid, policy_id, type_name, color ) SELECT :vehicle_block.id, :vehicle_block.reg_no, :vehicle_block.year, :vehicle_block.fuel, :vehicle_block.cc, :vehicle_block.transm, :vehicle_block.seat, :vehicle_block.price_p_day, (SELECT modelid FROM model m WHERE m.make = :vehicle_block.make AND m.mode_name = :vehicle_block.model), :vehicle_block.policy, :vehicle_block.type, :vehicle_block.color FROM dual; -- Oracle数据库需保留该行,MySQL/PostgreSQL等可删除 COMMIT;
修改要点:
- 去掉
VALUES关键字,改用INSERT INTO ... SELECT结构 - 将原
VALUES中的参数和子查询直接移入SELECT字段列表 - 若使用Oracle,必须加
FROM dual生成单行数据;其他数据库可省略该行
内容的提问来源于stack exchange,提问作者Muhammad Shameem EDOO
相关产品推荐
相关产品推荐

