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

ORA-00984: column not allowed here错误求助,请求排查SQL问题

问题排查:ORA-00984: column not allowed here

错误出在你的INSERT语句中,以下是具体问题和修正方案:

错误原因

  1. 字符串类型值未加单引号:specimen_code和specimen_code_source是VARCHAR类型,你传入的breast、SNOMED、urethra、LOINC没有用单引号包裹,Oracle会将这些识别为列名而非字符串值,从而抛出"column not allowed here"错误。
  2. DATE类型值缺少单引号:results_dtm是DATE类型,14-JAN-23、06-JUL-23未加单引号,虽然Oracle可能隐式识别,但不符合SQL规范,容易引发问题。
  3. 数字类型值不必要的字符串包裹:lab_id是NUMBER类型,你用了'4'、'5'这种字符串形式,虽然Oracle能自动转换,但建议直接使用数字更规范。

修正后的INSERT语句

insert into lab (lab_id, test_name, results, collect_dtm, results_dtm, specimen_code, specimen_code_source)
values (4, 'biopsy', 'negative', '07-JAN-23', '14-JAN-23', 'breast', 'SNOMED');

insert into lab (lab_id, test_name, results, collect_dtm, results_dtm, specimen_code, specimen_code_source) 
values (5, 'urea', 'positive', '04-JUL-23', '06-JUL-23', 'urethra', 'LOINC');

更稳妥的DATE类型写法(可选)

为了避免日期格式依赖会话设置,建议使用TO_DATE函数明确指定格式:

insert into lab (lab_id, test_name, results, collect_dtm, results_dtm, specimen_code, specimen_code_source)
values (4, 'biopsy', 'negative', TO_DATE('07-JAN-23', 'DD-MON-RR'), TO_DATE('14-JAN-23', 'DD-MON-RR'), 'breast', 'SNOMED');

insert into lab (lab_id, test_name, results, collect_dtm, results_dtm, specimen_code, specimen_code_source) 
values (5, 'urea', 'positive', TO_DATE('04-JUL-23', 'DD-MON-RR'), TO_DATE('06-JUL-23', 'DD-MON-RR'), 'urethra', 'LOINC');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 22:12:48