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

PL/SQL使用保留字date作为列名查询报错如何解决

PL/SQL保留字作为字段名的查询解决方案

PL/SQL中使用保留字作为表、列等自定义标识符时,必须用双引号对该标识符进行转义,且转义时的大小写需要与建表时定义的字段名大小写完全一致,以下是适配你场景的可行写法:

  • 基础查询写法
    直接用双引号包裹date字段即可,你的原SQL修改后如下:
    SELECT product FROM nexus WHERE "DATE" = '20210621';
    
    注意:如果建表时该字段定义为小写的date(Oracle默认无引号的标识符会存为大写),则需要写为"date",大小写不匹配会触发字段不存在的报错。
  • 搭配表别名写法
    你之前点运算符调用失效是因为未对字段做转义,搭配表别名的正确写法如下:
    SELECT n.product FROM nexus n WHERE n."DATE" = '20210621';
    
    该写法也可避免多表关联时的字段歧义问题。
  • 日期类型转换查询写法
    如果需要对字段做日期格式校验、日期范围查询,转义后即可正常调用日期函数:
    SELECT product FROM nexus WHERE TO_DATE("DATE", 'YYYYMMDD') = DATE '2021-06-21';
    

你之前尝试别名、点运算符不生效的核心原因是未对保留字字段做双引号转义,PL/SQL解析SQL时会将未转义的date识别为系统内置的日期保留字,而非你的表中自定义字段,因此会触发语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:15:02