欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

java 中调用oracle 存储过程到execute()就不实施了

更新时间: 2014-01-05 02:10:33 责任编辑: Author_N1

 

java 中调用oracle 存储过程到execute()就不执行了
java 中调用oracle 存储过程到execute()就不执行了中间也不报错,存储过程在oracle中调用 测试过没有问题。oracle过程如下:

CREATE or replace procedure test_emp(aename VARCHAR2,asal NUMBER) IS
BEGIN
UPDATE emp set sal=asal where ename=aename;
end;


java代码如下:

package com.oracle.db;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;

public class OraclePro {
public static void main(String[] args) {

try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORCL","scott","admin");
CallableStatement st=conn.prepareCall("{call test_emp(?,?)}");
st.setString(1, "SCOTT");
st.setInt(2,123);

System.out.println("执行");
st.execute();
System.out.println("OK");
st.close();
conn.close();
}catch (Exception e){
System.out.println("失败");
e.printStackTrace();
}
}

}

oracle 是10g的 驱动是classes12.jar和ojdbc14.jar
--参考方法--
不执行是什么意思?卡死在这句
单步调试一下试试
另外你的存储过程执行后,没有COMMIT操作
--参考方法--
会不会你当时执行的时候,有锁等待?
--参考方法--
加上commit呗,如果是表问题的话,可以尝试把表数据copy到另一个表中,把这个表数据truncate再复制回来,前几天刚遇到过程卡死问题,进行dml操作都要commit的,你调试的时候都可以看得到如果没有commit,等你过程调试完了,pl/sql上面出现一个提交事务的,记得养成好习惯哦!
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:10:33
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6552/
本文WWW.DOC100.NET DOC100.NET版权所有。