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

时间:2011-09-21 15:29:00

标签: sql oracle

我在oracle数据库中插入一条记录,我从java bean中获取值。它就像这样::

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

但过敏的值可能会产生撇号,导致sql失败并伴有ORA-00917:缺少逗号。有没有办法克服这个问题?

3 个答案:

答案 0 :(得分:5)

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

http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html

答案 1 :(得分:1)

最好使用bind variables而不是将查询构建为字符串。

那会照顾你的问题。它还会阻止SQL injection attacks(另请参阅Bobby Tables)。

以下是有关如何在Java中使用预准备语句和绑定变量的一些信息:link

答案 2 :(得分:0)

如何使用参数化查询而不是组装INSERT命令? Tha还会修复您当前的SQL Injection漏洞。