使用java程序对oracle添加触发器时,报错:索引中丢失 IN 或 OUT 参数:: 1

解决方法:

执行sql语句时,使用java.sql.Statement代替java.sql.PreparedStatement。

java.sql.PreparedStatement ps = conn.prepareStatement(sql);
ps.execute();

java.sql.Statement state = conn.createStatement();
state.execute(sql1);

代替。即可成功添加触发器。

 

研究:

Statement与PreparedStatement的区别: PreparedStatement接口继承Statement,PreparedStatement是预处理语句,其性能、安全性、可读性高于Statement。满足情况的条件下,要尽可能的使用PreparedStatement来执行sql语句。

以上问题可能是由于预处理语句对原sql语句重新处理后,未通过编译,导致报错。还需深入研究,待补充

posted @ 2019-03-06 11:01  进击的石头--GO!  阅读(735)  评论(0编辑  收藏  举报