Oracle APEX执行简单UPDATE语句报missing equal sign错误如何解决
问题原因
你的SQL报错是因为列名qty-onhand中包含减号-特殊字符,Oracle解析SQL时会把qty-onhand识别为「qty字段减去onhand字段」的运算表达式,而非一个完整的列名。执行到set qty-onhand = 11000时语法校验不通过,就会抛出missing equal sign错误。
解决方案
- 如果你建表时就是用带减号的名称定义该字段(建表阶段已经用双引号包裹列名),那执行更新语句时也需要用双引号包裹列名,注意Oracle对双引号包裹的标识符大小写敏感,需要和建表时的列名大小写完全一致:
update product_t set "QTY-ONHAND" = 11000 where productid = 28
- 更推荐的长期方案:后续建表尽量避免在列名、表名等标识符中使用特殊字符,可将减号替换为下划线
_,比如把列名改为qty_onhand,无需额外添加双引号就能正常使用,也不会触发这类语法错误。
内容的提问来源于stack exchange,提问作者Noobie
相关产品推荐
相关产品推荐

