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

运行Oracle INSERT ALL插入代码为何报ORA-00928缺失SELECT关键字错误

ORA-00928 错误修复指南

错误核心原因

提交的SQL不符合Oracle INSERT ALL 语法规范,关键字位置错误导致语法解析失败。

Oracle INSERT ALL 标准语法规则

INSERT ALL
  -- 每一行插入对应一组 INTO + 表结构 + VALUES 声明
  INTO 表名(列1, 列2, ... 列N) VALUES (值1, 值2, ... 值N)
  INTO 表名(列1, 列2, ... 列N) VALUES (值1, 值2, ... 值N)
-- 结尾必须跟查询子句,无特殊查询需求可直接查dual表
SELECT * FROM dual;

代码存在的具体问题

  • 第一个INTO子句后多写了单独的VALUES关键字,位置不符合语法要求
  • 后续3个INTO子句后均缺失对应的VALUES声明
  • 潜在问题1:PRACTICE_ID字段的值P1、P2如果是字符串类型,需要用单引号包裹,否则Oracle会将其识别为字段名抛出错误
  • 潜在问题2:SALARY字段如果是数值类型,不要加单引号和千位分隔符逗号,避免格式转换错误

修复后参考代码

INSERT All 
INTO VET (VET_ID, SURNAME, FORENAME, TITLE, EXT_NUMBER, POSITION, SALARY, PRACTICE_ID)
VALUES ('V01', 'WILSON', 'SARAH', 'DR', '6122', 'SENIOR PARTNER', 45000, 'P1')
INTO VET (VET_ID, SURNAME, FORENAME, TITLE, EXT_NUMBER, POSITION, SALARY, PRACTICE_ID)
VALUES ('V02', 'MCDONALD', 'BRYAN', 'DR', '6153', 'SENIOR PARTNER', 35000, 'P1')
INTO VET (VET_ID, SURNAME, FORENAME, TITLE, EXT_NUMBER, POSITION, SALARY, PRACTICE_ID)
VALUES ('V03', 'PATEL', 'JANE', 'DR', '6165', 'JUNIOR PARTNER', 29000, 'P2')
INTO VET (VET_ID, SURNAME, FORENAME, TITLE, EXT_NUMBER, POSITION, SALARY, PRACTICE_ID)
VALUES ('V04', 'MCCAFFERTY', 'TREVOR', 'MR', '6166', 'JUNIOR PARTNER', 25600, 'P2')
SELECT * FROM dual;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:27:03