我正在尝试执行以下批处理插入:
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然而,它一直在失败。有人能帮我解决原因吗?谢谢!
发布于 2015-03-05 15:19:56
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发布于 2015-03-05 15:18:37
如果您使用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;发布于 2015-03-05 15:28:41
问题是: Oracle不像它在MySQL中的实现者那样支持批处理插入语法。
有几种方法可以帮助你实现你的目标。(但我不得不承认,MySQL批量插入语法样式在ODBMS中是很好的。)
此外,“联合都从双重选择”旁边,您可以看看:
使用CSV文件中的SQL*Loader加载它。如果你真的想增加很多参赛作品,我建议你这样做。
为了加快单写插入状态的插入速度,请使用“提交写入批处理”,以便Oracle将语句写入成批。(如果还想减少复制/写入的“插入到手机值”代码的数量,则可以编写PL/SQL过程,因此只需复制过程的调用。)
如果你还有问题的话,还有一堆关于SQL*Loader,PL/SQL和过程的好教程,请随意提问。如果需要,我可以添加代码示例。
https://stackoverflow.com/questions/28881162
复制相似问题