You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Oracle代码无法批量插入多条数据?错误排查

问题分析与修正

你的批量插入代码存在语法格式错误,Oracle不支持这种在单个INSERT后直接用括号拼接多组值的写法。

错误点说明

你在第一组VALUES后添加了分号,后续直接用括号包裹值组,这不符合Oracle的SQL语法规范,数据库无法识别这种格式的插入语句。

正确的批量插入写法

针对Oracle数据库,有两种常用的批量插入方式:

方式1:使用多个独立INSERT语句(兼容所有Oracle版本)

每个值组对应一条完整的INSERT语句:

INSERT INTO sales VALUES ('A', '01-JAN-2021', '2');
INSERT INTO sales VALUES ('A', '07-JAN-2021', '2');
INSERT INTO sales VALUES ('A', '10-JAN-2021', '3');
INSERT INTO sales VALUES ('A', '11-JAN-2021', '3');
INSERT INTO sales VALUES ('A', '11-JAN-2021', '3');
INSERT INTO sales VALUES ('B', '01-JAN-2021', '2');
INSERT INTO sales VALUES ('B', '02-JAN-2021', '2');
INSERT INTO sales VALUES ('B', '04-JAN-2021', '1');
INSERT INTO sales VALUES ('B', '11-JAN-2021', '1');
INSERT INTO sales VALUES ('B', '16-JAN-2021', '3');
INSERT INTO sales VALUES ('B', '01-FEB-2021', '3');
INSERT INTO sales VALUES ('C', '01-JAN-2021', '3');
INSERT INTO sales VALUES ('C', '01-JAN-2021', '3');
INSERT INTO sales VALUES ('C', '07-JAN-2021', '3');

方式2:使用单INSERT多VALUES子句(Oracle 12c及以上版本支持)

用逗号分隔多组值,仅需写一次INSERT INTO:

INSERT INTO sales
VALUES 
    ('A', '01-JAN-2021', '2'),
    ('A', '07-JAN-2021', '2'),
    ('A', '10-JAN-2021', '3'),
    ('A', '11-JAN-2021', '3'),
    ('A', '11-JAN-2021', '3'),
    ('B', '01-JAN-2021', '2'),
    ('B', '02-JAN-2021', '2'),
    ('B', '04-JAN-2021', '1'),
    ('B', '11-JAN-2021', '1'),
    ('B', '16-JAN-2021', '3'),
    ('B', '01-FEB-2021', '3'),
    ('C', '01-JAN-2021', '3'),
    ('C', '01-JAN-2021', '3'),
    ('C', '07-JAN-2021', '3');

额外建议:插入DATE类型时,推荐用TO_DATE函数显式转换格式,避免因会话日期格式差异导致的错误,例如TO_DATE('01-JAN-2021', 'DD-MON-YYYY')。

内容的提问来源于stack exchange,提问作者Gs Prep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:06:20