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

如何在HTML文本框自动添加单引号以规避ORA-00904错误?

解决HTML文本框自动为输入内容添加单引号的问题

你遇到的ORA-00904错误,根源是Oracle把不带单引号的M10500000003当成了列名之类的标识符,而非字符串常量。要解决这个问题,只需要在拼接SQL时,自动给用户输入的会员号前后加上单引号即可,无需手动输入。

修改后的代码

直接调整<a>标签的onclick逻辑,在输入值前后拼接单引号:

<label for="txtName">Member Number</label><br>
<input type="text" id="txtName">

<a href="javascript:;" onclick="this.href='http://myIP/apex/epos.db_sql?P_SQL=select memberno,nameoncard from c19u.psm_member@c19 where memberno=' + "'" + document.getElementById('txtName').value + "'"">Check</a>

如果觉得引号嵌套太混乱,也可以用ES6模板字符串让代码更清晰:

<label for="txtName">Member Number</label><br>
<input type="text" id="txtName">

<a href="javascript:;" onclick="
  const memberNo = document.getElementById('txtName').value;
  this.href = `http://myIP/apex/epos.db_sql?P_SQL=select memberno,nameoncard from c19u.psm_member@c19 where memberno='${memberNo}'`;
">Check</a>

关键说明

  • 之前用HTML字符实体&#39;无效,是因为实体只在HTML解析时生效,JavaScript字符串里不会把它解析成单引号,直接在JS代码里用单引号(或模板字符串)才是正确的做法。
  • 注意:这种前端直接拼接用户输入到SQL的方式存在SQL注入风险,如果是对外公开的系统,一定要让后端改用参数化查询处理,避免安全问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:25:24