可能重复:
How to handle a single quote in Oracle SQL
我的塞纳里奥:
我想将查询(不是结果集)保存到数据库中。
我使用java作为前端;
我的表(querytab)具有以下字段:

sno VARCHAR2(1024)
QUERY VARCHAR2(4000)

问题是当我插入一个有条件的查询时
例如insert into querytab values('100','select * from querytab where sno ='100'');
第1行出错:
ORA-00933:SQL命令未正确结束
问题是:queryvalue在找到'时终止
如何解决这个问题。
提前感谢。

最佳答案

使用PreparedStatement转义字符串。
像这样的:

sql="insert into querytab values (?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,"100");
ps.setString(2,"select * from querytab where sno ='100'");
ps.executeUpdate();

07-24 14:36