oracle并发查询更新数据问题,Oracle10.2并发条件下更新游标数据的研究

本文通过实例分析了在Oracle 10.2中,使用和不使用for update子句更新游标数据时的并发行为。在并发环境下,未使用for update可能导致数据不一致,而使用该子句能有效保证数据正确性。
摘要由CSDN通过智能技术生成

本文测试在pl/sql编程中,更新游标数据的2种方式以及并发条件下各种方式的实际表现。2种方式的效率问题不在此文讨论之列!

一、环境准备

数据库:Oracle10.2.0.4

测试工具:PL/SQL Developer9

二、数据准备

我们使用oracle自带的演示用户scott登录数据库,为清楚看到数据变化,执行以下语句:

SQL> update emp t set t.sal=1000;

14 rows updated

SQL> commit;

Commit complete

Emp表的sal字段初始化为1000

查询emp表:

SELECTt.empno, t.ename,t.job, t.sal,ROWIDrdfromemp t;

结果如图1所示:

图1

Sal字段已经全部更新为1000

三、创建存储过程ps_cursor_for_update

CREATEORREPLACEPROCEDUREps_cursor_for_update

(p_salPLS_INTEGER)IS

CURSORcIS

SELECTt.empno, t.ename,

t.hiredate,ROWIDrd

FROMEMP t

WHEREt.sal =1000

FORUPDATE;

v_emp_record c%ROWTYPE;

v_rowsPLS_INTEGER:=0;

BEGIN

OPENc;

LOOP

FETCHc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值