JDBC中往一张表的String类型的字段中插入SQL语句的问题:
如下面的语句:
sql=insert into RT_RQ_DATARULE (TESTNO,STEPNO,TYPE,FIELD3,SQLDBTYPE) values
('lejcs_004',9,'EXESQL',q'Xinsert into IB_CBA_EboxUnitDET values(7554013229291,1,-1,50000,to_date('2010-06-11 00:00:00','yyyy-mm-dd hh24:mi:ss'),to_date('2099-07-12 00:00:00','yyyy-mm-dd hh24:mi:ss'),-1,0,2000,-1,to_date('2010-07-11 22:48:24','yyyy-mm-dd hh24:mi:ss'));X',1)
就是把一个insert语句插入到FIELD3字段中,直接在ORACLE命令行是可以执行成功,但用jdbc会如下错误:
java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1用的是
PreparedStatement ps = null
ps = updateCon.prepareStatement(sql);
ps.executeUpdate()
这里的updateCon是Connection的连接如果把FIELD3对应的insert语句中的to_date里的":"去掉用JDBC是执行成功的环境:Tomcat6.0,ojdbc14.jar求解决方法
如下面的语句:
sql=insert into RT_RQ_DATARULE (TESTNO,STEPNO,TYPE,FIELD3,SQLDBTYPE) values
('lejcs_004',9,'EXESQL',q'Xinsert into IB_CBA_EboxUnitDET values(7554013229291,1,-1,50000,to_date('2010-06-11 00:00:00','yyyy-mm-dd hh24:mi:ss'),to_date('2099-07-12 00:00:00','yyyy-mm-dd hh24:mi:ss'),-1,0,2000,-1,to_date('2010-07-11 22:48:24','yyyy-mm-dd hh24:mi:ss'));X',1)
就是把一个insert语句插入到FIELD3字段中,直接在ORACLE命令行是可以执行成功,但用jdbc会如下错误:
java.sql.SQLException: 索引中丢失 IN 或 OUT 参数:: 1用的是
PreparedStatement ps = null
ps = updateCon.prepareStatement(sql);
ps.executeUpdate()
这里的updateCon是Connection的连接如果把FIELD3对应的insert语句中的to_date里的":"去掉用JDBC是执行成功的环境:Tomcat6.0,ojdbc14.jar求解决方法
解决方案 »
- 网页展现数据库的结果的问题?
- 请问Ajax框架中用得最多的是哪个?各自用在项目哪些地方比较多?
- Server.UrlEncode编码
- quartz执行不正常,结贴率100%,在线等
- 用java实现:在下面xml中添加一本书的信息,用dom4j实现
- 制作一个等待窗体???高分求教!在线等,好了就给分
- hibernate的致命缺点有哪些,各位大虾都来抒发一下自己使用的感想吧?
- 请教:如何在WEB运行时,在JAVA类中使用虚拟路径构建file? (不使用servlet,就是普通类)
- jasperreports 求助
- 想请各位前辈高手讨论C/S三层架构的问题,请高手指教
- java中==运算符判断对象类型时的逻辑
- 网址为 https://localhost/ 的网页可能暂时无法连接
String FIELD3SQL = "";
values里面用?代替下面ps.setString(4,FIELD3SQL)
2 'abc'表示一个值为abc的字符串,想表示一个里面有单引号的字符串需要用''转义,比如想插入values(to_date('19010101','yyyymmdd')) 必须拼接成values(to_date(''19010101'',''yyyymmdd''))
String FIELD3SQL = "";
values里面用?代替
下面ps.setString(4,FIELD3SQL) 用这个方法可以解决这个问题,谢谢