我目前在尝试同时执行多个语句时遇到问题。尝试运行以下INSERT语句时,我不断收到此错误:
INSERT INTO report_header ( report_number, company_id, user_id, entry_date) VALUES ( 6797, 15967, 84, TRUNC(SYSDATE));
INSERT INTO report_detail (part_id, condition_id, uom_id, dvc_id, cqh_id, alt_part_id, entry_date, qty_quoted, qty_req, unit_cost, unit_price, customer_price, route_code) VALUES ((SELECT part_id from parts where pn = '2366'),15,1,3,(select max(report_id) from report_header), (SELECT part_id from parts where pn = '2366'),'11-JUN-2015',1,1,0,1895,1895,'O');
SELECT * from Dual;
因此,当我拆分命令并逐个运行它们运行正常但在同一语句中我得到'命令未正确结束'错误。我一直在尝试所有各种线程,这是我能得到的关闭。任何帮助表示赞赏。
先谢谢大家。
答案 0 :(得分:1)
根据您的评论,我仍然不清楚您使用什么工具将语句提交到数据库。
您的查询工具很可能一次只能处理一个语句。
即使您按照自己的方式批量处理3个语句,这些仍然是3个不同的语句,也许该工具无法处理。
可用于将其转换为单个语句的技术是将SQL作为单个匿名PL / SQL块的一部分提交。不确定您的工具是否支持该功能。但是如果确实如此,你可以试试这个(我从选择中删除了双重部分,因为我不知道它的重点是什么):
begin
INSERT INTO report_header ( report_number, company_id, user_id, entry_date) VALUES ( 6797, 15967, 84, TRUNC(SYSDATE));
INSERT INTO report_detail (part_id, condition_id, uom_id, dvc_id, cqh_id, alt_part_id, entry_date, qty_quoted, qty_req, unit_cost, unit_price, customer_price, route_code) VALUES ((SELECT part_id from parts where pn = '2366'),15,1,3,(select max(report_id) from report_header), (SELECT part_id from parts where pn = '2366'),'11-JUN-2015',1,1,0,1895,1895,'O');
end;
关键是如上所述包装begin
和end;
关键字。希望它对你有用。
答案 1 :(得分:0)
Sstan指出的是,在每个陈述结束时你缺少分号。
尝试:
INSERT INTO report_header ( report_number, company_id, user_id, entry_date) VALUES ( 6797, 15967, 84, TRUNC(SYSDATE));
INSERT INTO report_detail (part_id, condition_id, uom_id, dvc_id, cqh_id, alt_part_id, entry_date, qty_quoted, qty_req, unit_cost, unit_price, customer_price, route_code) VALUES ((SELECT part_id from parts where pn = '2366'),15,1,3,(select max(report_id) from report_header), (SELECT part_id from parts where pn = '2366'),'11-JUN-2015',1,1,0,1895,1895,'O');
SELECT * from Dual;
注意“;”划定每个单独的陈述。