我的Senario: 我想在数据库中保存查询(而不是结果集)。 我使用Java作为前端; 我的表(Querytab)具有以下字段:
sno VARCHAR2(1024)
QUERY VARCHAR2(4000)
问题是当我插入具有条件的查询时
例如insert into querytab values('100','select * from querytab where sno ='100'');
第1行的错误: ORA-00933:SQL命令未正确结束
问题是:Queryvalue在找到 '
时会被终止
怎么解决这个问题。
提前谢谢。
答案 0 :(得分:2)
要插入单引号,您需要转义它们。转义是通过简单地复制它们来完成的:
insert into querytab
(sno, query)
values
('100','select * from querytab where sno = ''100'' ');
手册中对此进行了解释:
http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements003.htm#i42617
答案 1 :(得分: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();
答案 2 :(得分:0)
试试这个,
insert into querytab values('100','select * from querytab where sno =100');