Java 将查询插入oracle数据库
可能重复:Java 将查询插入oracle数据库,java,sql,database,oracle,Java,Sql,Database,Oracle,可能重复: 我的塞纳里奥: 我想将查询(不是结果集)保存在数据库中。 我使用Java作为前端; 我的表格(Querytab)包含以下字段: sno VARCHAR2(1024) QUERY VARCHAR2(4000) 问题是当我插入一个有条件的查询时 e、 ginsert-into-querytab值('100','select*from-querytab,其中sno='100') 第1行错误: ORA-00933:SQL命令未正确结束 问题是:当Queryvalue找到' 如何解决这个问
我的塞纳里奥: 我想将查询(不是结果集)保存在数据库中。 我使用Java作为前端; 我的表格(Querytab)包含以下字段:
sno VARCHAR2(1024)
QUERY VARCHAR2(4000)
问题是当我插入一个有条件的查询时
e、 ginsert-into-querytab值('100','select*from-querytab,其中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();
试试这个
insert into querytab values('100','select * from querytab where sno =100');
要插入单引号,需要对其进行转义。转义是通过简单地复制它们来完成的:
insert into querytab
(sno, query)
values
('100','select * from querytab where sno = ''100'' ');
本手册对此进行了解释:
@Mat:这不是你说的话的翻版。。。他想存储查询…问题也是一样的。您需要正确地转义字符串。(如果您是从代码中执行此操作的,那么应该使用准备好的语句和绑定变量。)@Mat感谢您的帮助,它可以正常工作了。。!非常感谢您正在存储不同的字符串。这不是OP想要存储的字符串。