我正在尝试执行批量插入,如下所示:
SQL> INSERT INTO Z (q, w, e, r)
VALUES
('7', 'A', '3', 'A'),
('8', 'B', '4', 'An'),
('9', 'C', '5', 'And');
*
ERROR at line 1:
ORA-00933: SQL command not properly ended
然而它一直都在失败。有人可以帮我解释原因吗? 谢谢!
答案 0 :(得分:0)
如果您使用insert . . . select
:
INSERT INTO cellphone (phone_id, model, data, os)
SELECT '99997', 'Galaxy S IV', '4g', 'Android' FROM DUAL UNION ALL
SELECT '99998', 'Galaxy S V', '4g', 'Android' FROM DUAL UNION ALL
SELECT '99999', 'Galaxy S VI', '4g', 'Android' FROM DUAL;
答案 1 :(得分:0)
INSERT INTO cellphone (phone_id, model, data, os)
select '99997', 'Galaxy S IV', '4g', 'Android' from dual
union all select '99998', 'Galaxy S V', '4g', 'Android' from dual
答案 2 :(得分:0)
问题是:Oracle不像MySQL中的实现那样支持批量插入语法。
Ther是您实现目标的几种方式。 (但我必须承认MySQL批量插入语法样式在ODBMS中会很好。)
除了被修改的“工会全部选择双重”之外,你可以看一下:
使用CSV文件中的SQL * Loader加载它。如果你真的想添加很多东西我建议这个。
使用单一写入加速插入插入语句使用“提交写入批处理”,以便Oracle将批量写入语句。 (如果您还想减少复制/写入“INSERT INTO手机VALUES”代码的数量,您可以编写PL / SQL程序,这样您只需要复制程序的调用。)
如果您仍然有问题,请随时提出SQL * Loader,PL / SQL和过程的优秀教程。如果需要,我可以添加代码示例。