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

插入Oracle表数据触发ORA-01747错误,求排查SQL代码问题

ORA-01747错误原因及修复方案

触发错误的核心原因

  • 插入语句中的列名使用了单引号包裹:Oracle语法规定单引号仅用于标识字符串字面量,表名、列名这类标识符不允许使用单引号包裹。如果是大小写敏感的特殊标识符需要用双引号标注,本次建表时列名均为默认非大小写敏感格式,直接省略引号即可,这是触发ORA-01747错误的直接原因。
  • 存在隐式类型转换风险:tanggal_kadarluarsa字段为DATE类型,直接传入字符串'2023-09-01'依赖当前会话的默认日期格式配置,格式不匹配时会触发日期类型相关报错,建议使用to_date()函数显式做日期类型转换。

修正后的插入语句

保留INSERT ALL写法

INSERT ALL 
   INTO obat (id_obat, nama_obat, tanggal_kadarluarsa, stock, harga) 
   VALUES (1, 'Indomethacin', TO_DATE('2023-09-01', 'yyyy-mm-dd'), 50, 3000)
SELECT * FROM dual;

单条插入简化写法

如果仅需要插入单条数据,不需要使用INSERT ALL语法,可简化为:

INSERT INTO obat (id_obat, nama_obat, tanggal_kadarluarsa, stock, harga)
VALUES (1, 'Indomethacin', TO_DATE('2023-09-01', 'yyyy-mm-dd'), 50, 3000);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:30:00