2012-01-21 414 views
1

可能重复:
How to handle a single quote in Oracle SQL插入查询到Oracle数据库

我塞纳里奥: 我要保存的查询(而不是结果集)在数据库中。 我使用Java作为前端; 我的表(Querytab)具有以下字段:

sno VARCHAR2(1024) 
QUERY VARCHAR2(4000) 

问题是,当我插入具有条件的查询 例如insert into querytab values('100','select * from querytab where sno ='100'');

位于第1行错误: ORA-00933:SQL命令未正确end

问题是:查询值在找到时终止' 如何解决此问题。 在此先感谢。

+0

@Mat:这不是重复你说的话......他想存储的查询... –

+2

问题是一样的。你需要正确地逃避你的字符串。 (如果你是从代码中完成的,你应该使用预处理语句并绑定变量。) – Mat

+0

@Mat感谢帮助它的工作伙计..!非常感谢 – special

回答

1

使用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(); 
1

试试这个,

insert into querytab values('100','select * from querytab where sno =100'); 
+1

你正在存储一个不同的字符串。这不是OP要存储的字符串。 –