java调用存储过程问题

yes152 2011-04-21 06:39:28
我是以scott用户连接的,修改scott的工资就不可以,cs.setString(1, "SCOTT"); 这句话改成SMITH就可以修改了
怎么用scott连接再修改scott的工资呢?


import java.sql.*;

public class Test {

public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:myora";
String userName = "scott";
String password = "tiger";

Connection conn =
DriverManager.getConnection (url, userName, password);
System.out.println(conn);

CallableStatement cs = conn.prepareCall("{call sp_001(?,?)}");
cs.setString(1, "SCOTT");
cs.setInt(2, 2900);
cs.execute();

cs.close();
conn.close();

//ok打印不出来,改成SIMTH就可以了
System.out.println("ok!");
} catch (Exception e) {
e.printStackTrace();
}
}
}

create or replace procedure sp_001(empName varchar2, newSal number) is
begin
update emp set sal=newSal where ename=empName;
end;
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yes152 2011-04-22
  • 打赏
  • 举报
回复
谢谢各位前辈啦 过程里加commit就可以啦!!
p13766 2011-04-22
  • 打赏
  • 举报
回复
记得commit!Oracle很容易锁住的
syh202 2011-04-22
  • 打赏
  • 举报
回复
存储过程里加上commit试试
fable0115 2011-04-21
  • 打赏
  • 举报
回复
正常时可以的,我也估计可能是悲观锁锁住了,你从新连接一下数据库,或者commit一下数据。
然后再来执行该段代码~
fafi09 2011-04-21
  • 打赏
  • 举报
回复
设断点,扑捉一下异常吧, 这条记录不是被锁了吧。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧