Oracle一道小题求解 在emp表中先从把scott用户的sal减去50,然后再给king员工的sal加上50元,中间使用事 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 beginupdate emp set sal=sal-50 where name='scott';update emp set sal=sal+50 where name='king';commit;exception when others then rollback;我也是初学者 1个sql够了:update scott.emp set sal=decode(ENAME,'SCOTT',sal-50,'KING',sal+50,sal); 什么是事务?事务就是用于保证数据的一致性,它由一组相关的dml语句组成,改组的dml语句要么全部成功,要么全部失败;(dml语句就是数据操作语言,如查询,删除等等); 事务和锁当执行事务操作时(dml语句),oracle会在被操作的表上加锁,防止其他用户改变表的结构; 提交事务当执行使用commit语句会提交事务,当执行了commit事务,会确认事务的变化,结束事务,删除保存点,释放锁。当使用commit提交事务后,其他会话可以看到事务确认变化的新数据; 保存点保存点是事务中的一个点,用于取消部分事务,当事务结束时,会自动删除该事务所定义的所有保存点。 回滚事务当执行rollback时,通过制定保存点可以回退到制定的点;(注:当事务执行commit提交了以后,不能再回滚了)。 事务的几个重要操作1) 设置保存点Savepoint a1;2) 取消部分事务Rollback to a1;3) 取消全部事务Rollback;4) 提交事务Commit; Java中如何使用事务在java中操作数据时,为了保证数据库的一致性,比如转账操作;import java.sql.*;public class testOra2 { //演示jdbc链接操作oracle public static void main(String[] args) { Connection conn=null; try { //1.加载jdbc驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); //2. 获取链接 conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.10.15:1521:TEST","testUser","testUser"); //下面操作和sql server一样 Statement sm=conn.createStatement(); //加载事务处理 conn.setAutoCommit(false); sm.executeUpdate("update emp set sal=sal-100 where ename='KING'"); //设置异常 int i=7/0; sm.executeUpdate("update emp set sal=sal+100 where ename='SCOTT'"); //提交事务处理 conn.commit(); //关闭资源 conn.close(); sm.close(); } catch(Exception ex) { try { //事务回滚 conn.rollback(); } catch (Exception e) { e.printStackTrace(); } ex.printStackTrace(); } }} 只读事务只读事务就是只允许执行查询操作,不允许执行其他任何dml操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。设置只读事务Set transaction read only; 1个sql够了:update scott.emp set sal=decode(ENAME,'SCOTT',sal-50,'KING',sal+50,sal);厉害 这个我不是很懂 还在学习的路上 oracle 管理表的问题 求助,oralce10g dbca创建数据库失败 执行.sql脚本 显示“未连接”是什么错误? 求个 after update的触发器。 求句SQL 怎么在导出的dmp文件中找到表空间的名称 pl\sql 查询问题 Oracel中,如何统计 两个日期间的数据? 请教一个简单的问题 文件读取的问题。 如何生成远程数据库的awr报告 关于case分支中使用COMMIT出现的问题
update emp set sal=sal-50 where name='scott';
update emp set sal=sal+50 where name='king';
commit;
exception
when others then
rollback;
我也是初学者
事务就是用于保证数据的一致性,它由一组相关的dml语句组成,改组的dml语句要么全部成功,要么全部失败;(dml语句就是数据操作语言,如查询,删除等等);
事务和锁
当执行事务操作时(dml语句),oracle会在被操作的表上加锁,防止其他用户改变表的结构;
提交事务
当执行使用commit语句会提交事务,当执行了commit事务,会确认事务的变化,结束事务,删除保存点,释放锁。当使用commit提交事务后,其他会话可以看到事务确认变化的新数据;
保存点
保存点是事务中的一个点,用于取消部分事务,当事务结束时,会自动删除该事务所定义的所有保存点。
回滚事务
当执行rollback时,通过制定保存点可以回退到制定的点;(注:当事务执行commit提交了以后,不能再回滚了)。
事务的几个重要操作
1) 设置保存点
Savepoint a1;
2) 取消部分事务
Rollback to a1;
3) 取消全部事务
Rollback;
4) 提交事务
Commit;
Java中如何使用事务
在java中操作数据时,为了保证数据库的一致性,比如转账操作;import java.sql.*;public class testOra2 { //演示jdbc链接操作oracle
public static void main(String[] args) {
Connection conn=null;
try
{
//1.加载jdbc驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. 获取链接
conn=DriverManager.getConnection("jdbc:oracle:thin:@192.168.10.15:1521:TEST","testUser","testUser");
//下面操作和sql server一样
Statement sm=conn.createStatement();
//加载事务处理
conn.setAutoCommit(false);
sm.executeUpdate("update emp set sal=sal-100 where ename='KING'");
//设置异常
int i=7/0;
sm.executeUpdate("update emp set sal=sal+100 where ename='SCOTT'");
//提交事务处理
conn.commit();
//关闭资源
conn.close();
sm.close();
}
catch(Exception ex)
{
try
{
//事务回滚
conn.rollback();
}
catch (Exception e)
{
e.printStackTrace();
}
ex.printStackTrace();
}
}}
只读事务
只读事务就是只允许执行查询操作,不允许执行其他任何dml操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。
设置只读事务
Set transaction read only;
厉害 这个我不是很懂 还在学习的路上