当前位置: 首页 > news >正文

wordpress做一个视频网站/百度公司官网招聘

wordpress做一个视频网站,百度公司官网招聘,wordpress title背景颜色,wordpress 导出当前位置:我的异常网 Oracle开发 关于存储过程并发处理,该怎么解决关于存储过程并发处理,该怎么解决www.myexceptions.net 网友分享于:2013-12-17 浏览:588次关于存储过程并发处理想测试一下存储过程处理过程中,另一个进程也调用了当前存储…

当前位置:我的异常网» Oracle开发 » 关于存储过程并发处理,该怎么解决

关于存储过程并发处理,该怎么解决

www.myexceptions.net  网友分享于:2013-12-17  浏览:588次

关于存储过程并发处理

想测试一下存储过程处理过程中,另一个进程也调用了当前存储过程时,数据一致性的问题,现做了以下测试:

创建表A100(可理解成库存总量表) C1  varchar2(10) --产品编码

C2  number        --产品库存总量

A200(可理解成备品出入库记录表。暂时不考虑主键问题)

C1  varchar2(10)  --产品编码

C2  number         --出入库量

创建了两个存储过程SP_TEST1、SP_TEST2。两个存储过程大多数内容一样,只是SP_TEST1在Commit前多一条dbms_lock.sleep(5); 以模拟上一个处理尚未完成时,另一个处理又被调用。(存储过程见下面)

调用方法:执行SP_TEST1,紧接着执行SP_TEST2(在5秒钟之内),发现执行结果与预想的出入很大

1)第一次调用存储过程时,A100表会生成两条“产品编码”一样的记录,“产品库存总量”不同,分别是两个存储过程调用是赋的值

2)第二次(包括之后)调用时,尽管先执行的SP_TEST1,但A100表合计总量仍会漏掉SP_TEST1执行时赋予的参数量

请问:1)我这种实验方法本身有没有问题(即是否可以利用dbms_lock.sleep(5);模拟存储过程执行时间很长);

2)若我的方法没有问题,为什么并发执行时SP_TEST1的参数没有被统计并更新到表A100?

3)若我的存储过程有问题,如何编写才能避免存储过程并发调用时,库存量被错误计算(统计)?

--存储过程SP_TEST001

CREATE OR REPLACE PROCEDURE sp_test001

(vName in varchar2,vNumb in number)

is

begin

declare

vA1Rcount number;

begin

--判断A200表中是否有c1=vName的记录 如果有:update  没有:insert

insert into A200(c1,c2) values (vName,vNumb);

--判断A100表中是否有c1=vName的记录,如果有:update 没有:Insert

select count(1) into vA1Rcount from A100 where c1=vName;

if(vA1Rcount > 0) then

update A100 set c2=(select sum(nvl(c2,0)) from A200 where A200.c1 = A100.c1) where A100.c1=vName;

else

insert into A100(c1,c2,c3) values (vName,vNumb,0);

end if;

dbms_lock.sleep(5);

commit;

EXCEPTION WHEN OTHERS THEN

DECLARE

Err_msg varchar2(512):=sqlerrm;

BEGIN

Dbms_output.put_line('ORA Error message '||err_msg);

Rollback;

end;

end;

end;

--存储过程SP_TEST002

CREATE OR REPLACE PROCEDURE sp_test002

(vName in varchar2,vNumb in number)

is

begin

declare

vA1Rcount number;

begin

--判断A200表中是否有c1=vName的记录 如果有:update  没有:insert

insert into A200(c1,c2) values (vName,vNumb);

--判断A100表中是否有c1=vName的记录,如果有:update 没有:Insert

select count(1) into vA1Rcount from A100 where c1=vName;

if(vA1Rcount > 0) then

update A100 set c2=(select sum(nvl(c2,0)) from A200 where A200.c1 = A100.c1) where A100.c1=vName;

else

文章评论

http://www.lbrq.cn/news/1758871.html

相关文章:

  • 遵义网红街/网页关键词排名优化
  • 0基础如何做网站/ai智能营销系统
  • 遵义市做网站的地方/seoer是什么意思
  • 男女在浴室里做羞羞事网站/软件推广平台有哪些?哪个比较好
  • 福田网站建设哪家好/网站关键词提升
  • 福田网站制作哪家好/百度竞价推广登录
  • 南邮通达网页设计报告/快速seo优化
  • 大连网站开发费多少钱/衡阳seo优化
  • 视频网站怎么做算法/小说百度风云榜
  • 甘肃省交通建设项目招投标中心网站/企业策划书
  • 物流企业网站建设特色/淘宝关键词搜索量查询
  • 网站建设报价清单明细/好口碑关键词优化
  • 建设网站最快多长时间/雅诗兰黛网络营销策划书
  • 社团网站建设/给企业做网站的公司
  • 做推广最好的网站是哪个?/哪个杭州seo好
  • 武汉建设管理局/seo关键词软件
  • 印度尼西亚网站后缀/关键词免费下载
  • 网站建设公司盈利/推广软文300字范文
  • 有什么比较好的做简历的网站/找网站公司制作网站
  • 郑州hi宝贝网站建设公司/安卓优化大师旧版本下载
  • 做外贸网站美国服务器要多少钱/免费发布推广的网站
  • 义乌哪里做网站好/百度热搜榜今日头条排名
  • 一个网站的建设步骤/seo深度优化公司
  • 别人做的网站不能用/app注册拉新平台
  • 网站网站制作公司哪家好/小米的推广软文
  • 云平台网站开发/宁波seo高级方法
  • 云南省城乡建设培训中心网站/网络营销技能大赛优秀作品
  • 外贸网站定制开发/宣传软文模板
  • 适合学生做的网站/如何做好口碑营销
  • 全屏响应式网站/网站seo快速
  • 2025开放原子开源生态大会 | 开源欧拉的AI原生实践与全球协作
  • GaussDB 数据库架构师修炼(三) 集群管理概览
  • 《大数据技术原理与应用》实验报告四 MapReduce初级编程实践
  • 【第二章自定义功能菜单_MenuItemAttribute_顶部菜单栏(本章进度1/7)】
  • 如何设计实现开发自助重启工具-01-设计篇
  • 《星盘接口2:NVMe风暴》