插入记录时的转义oracle sql序列是什么?

插入记录时的转义oracle sql序列是什么?,sql,oracle,Sql,Oracle,我将在oracle数据库中插入一条记录,从java bean中获取值。事情是这样的: insert into allergy (patient_id, allergy, reaction) values(seq_patient.nextval, '" + bean.getPatient_allergy() + "', '"+ bean.getReaction()+"')"; 但是allergy的值可能会给出一个撇号,这会导致sql使用ORA-00917失败:缺少逗号。有没有办法克服这个问题?使

我将在oracle数据库中插入一条记录,从java bean中获取值。事情是这样的:

insert into allergy (patient_id, allergy, reaction) values(seq_patient.nextval, '" + bean.getPatient_allergy() + "', '"+ bean.getReaction()+"')";

但是allergy的值可能会给出一个撇号,这会导致sql使用ORA-00917失败:缺少逗号。有没有办法克服这个问题?

使用参数化语句,而不是将变量注入查询:


使用参数化语句,而不是向查询中注入变量:

最好优先使用,而不是将查询构建为字符串

那会解决你的问题。它还将防止(另请参见)

下面是一些关于如何在Java中使用准备好的语句和绑定变量的信息:。

最好优先使用,而不要将查询构建为字符串

那会解决你的问题。它还将防止(另请参见)


下面是一些关于如何在Java中使用准备好的语句和绑定变量的信息:。

如何使用参数化查询而不是组合
INSERT
命令?这也将修复您当前的漏洞。

使用参数化查询而不是组合
INSERT
命令如何?这也将修复您当前的漏洞