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

TypeORM操作Oracle用NVL处理字符串报ORA-00904:"Pending"无效标识符如何解决

问题原因
  • 报错ORA-00904: "Pending": invalid identifier的核心是Oracle语法规则:双引号在Oracle SQL中仅用于标注标识符(如表名、列名、别名,区分大小写时使用),而字符串字面量必须使用单引号包裹。你将字符串Pending用双引号包裹后,Oracle会将其识别为列名去检索,自然会抛出标识符不存在的错误。
  • 之前数值类型可以正常运行是因为0是数值字面量,不需要加引号包裹,不存在符号误用问题。
正确写法

原生Oracle SQL写法

NVL(Details.status, 'Pending') AS "PostulationDetail_status"

仅需要把"Pending"的双引号替换为单引号即可正常运行。

TypeORM 写法适配

如果使用TypeORM查询构建器编写,更推荐用参数绑定的方式处理,不需要自行处理引号转义,也能避免SQL注入风险,示例代码:

queryBuilder.addSelect(
  "NVL(Details.status, :defaultStatus)",
  "PostulationDetail_status"
)
.setParameter("defaultStatus", "Pending")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:06:01