A求一个SQL oracle 执行多条SQL语句 事务提交

sasasd 2010-01-14 10:22:25
求一个SQL 语句--------------------------
如下
update table1 set name = 'A' ;
update table2 set name = 'B' ;
update table3 set name = 'B' ;

oracle 数据库中三表table1 、table2、table2 需要同时更新 这三表,
如果其中一条语句更新失败,其他更新
语句都回滚。
不允许写在存储过程里。 ---------------
谢谢啦
...全文
696 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangyunzeng2008 2010-01-16
  • 打赏
  • 举报
回复
这个需求真的很怪异啊!为什么不让写在存储过程里啊!
wuyisky84 2010-01-14
  • 打赏
  • 举报
回复
楼主的需求很奇怪

为什么要这样呢
SambaGao 2010-01-14
  • 打赏
  • 举报
回复

begin
update gjhohj_a set name='123' where id=1 ;
update gjhohj_b set name = '456' where id=4 ;
commit ;
exception
when others then
rollback ;

end ;
SambaGao 2010-01-14
  • 打赏
  • 举报
回复

package com.xlh.read;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

public class Conn {


public void update() {

String sql1 = "update table1 set name = 'A' ";
String sql2 = "update table2 set name = 'B' ";
String sql3 = "update table3 set name = 'B' " ;

Connection conn = DBConnection.getConnection() ;
PreparedStatement ps = null ;
try {
conn.setAutoCommit(false) ;
ps = conn.prepareStatement(sql1) ;
ps.executeUpdate() ;
ps = conn.prepareStatement(sql2) ;
ps.executeUpdate() ;
ps = conn.prepareStatement(sql3) ;
ps.executeUpdate() ;

conn.setAutoCommit(true) ;
} catch (SQLException e) {
conn.rollback() ;
e.printStackTrace() ;
}
}
}
如果是java的话.
试试

wh62592855 2010-01-14
  • 打赏
  • 举报
回复
declare
begin
update table1 set name = 'A' ;
update table2 set name = 'B' ;
update table3 set name = 'B' ;
end;
/
kusch 2010-01-14
  • 打赏
  • 举报
回复
为什么不允许写在存储过程呢?
存储过程轻松搞定
zhangwonderful 2010-01-14
  • 打赏
  • 举报
回复
strSql="begin update table1 set name = 'A' ; update table2 set name = 'B' ; update table3 set name = 'B' ; end;"
然后执行此复合语句
owen_008 2010-01-14
  • 打赏
  • 举报
回复
非常好~~~~~~~~~~~~~~~~~~~~~~~~~~我顶

silezaihuolai 2010-01-14
  • 打赏
  • 举报
回复
你是使用哪种语言?如果是C#的话,利用ADO.NET的OracleTransaction。利用这个对于每次连接可以定义一个完整事物,假如你上面的某一天语句执行失败,可以利用它进行回滚。
crazylaa 2010-01-14
  • 打赏
  • 举报
回复
如果是纯sql,那么可以很肯定的告诉楼主:不可能。

如果是开发语言,请使用相关的事务控制。

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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