sql 实例如下:

/**************定义更改car_station_user_acct_his new_balance old_balance存储过程**************/
create procedure abc (in number varchar(256))  -- 【in表示这个参数是传入参数,out表示这个是传出参数(类似Java中的return),in out表示这个既是传入,又是传出参数,可以利用它传入该存储过程,然后接到处理后的这个参数】

begin
-- 定义变量
declare v_date,v_name varchar(256);

-- 申明 游标
declare cur cursor for select create_date,update_by from car_order where bill_number = number;

-- 遍历数据结束标志
declare done int default false;

-- 将结束标志绑定到游标

declare continue handler for not found set done = true;

/* select a.create_date,a.user_name
from (select h.create_date,h.user_name,
-- 对笔数进行判断,算出相应工分
case when h.trade_no < 11 then round(convert(o.total,DECIMAL)*0.3,0)
when h.trade_no < 21 then round(convert(o.total,DECIMAL)*0.4,0)
else round(CONVERT(o.total,DECIMAL)*0.5,0) end as car
from car_order o, car_station_user_acct_his h
where o.bill_number = h.bill_number and h.trade_no is not NULL and o.total > 1 and o.update_by = '2A36006' ) a
where a.car != a.deduct; */

-- 打开游标、开始循环
open cur;
read_loop:loop
fetch cur into v_date,v_name;
if done then
leave read_loop;
end if;

--过程调试
-- step1 修改用户积分历史记录(car_station_user_acct_his)的变换后值,从当前单据往后修改,包括当前单据
update car_station_user_acct_his
set new_balance = new_balance+1
where create_date >= v_date
and user_name = v_name;

--过程调试
-- step2 修改用户积分历史记录(car_station_user_acct_his)的变换前值,从当前单据往后修改
update car_station_user_acct_his
set old_balance = old_balance+1
where create_date > v_date
and user_name = v_name;

-- step3 修改订单记录的积分
update car_order set deduct = deduct+1
where bill_number = number
and create_date>=v_date
and create_date<DATE_ADD(date(now()),INTERVAL 1 DAY)
and update_by = v_name;

-- step4 修改用户当前积分
update car_order set deduct = deduct + 1 where bill_number = number;

end loop;
close cur;
end;

My sql之存储过程+游标的更多相关文章

  1. sql server 存储过程---游标的循环

    sqlserver中的循环遍历(普通循环和游标循环) sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student

  2. sql server 存储过程使用游标记录

    sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...

  3. SQL Server存储过程Return、output参数及使用技巧

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

  4. SQL Server 存储过程(转载)

    SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...

  5. [转]关于SQL分页存储过程的分析

    [转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用 ...

  6. (摘录)SQL Server 存储过程

    文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...

  7. SQL Server 存储过程具体解释

    SQL Server 存储过程具体解释 存储过程的优缺点 ◆长处: 运行速度更快. 存储过程仅仅在创造时进行编译,而一般SQL语句每运行一次就编译一次,所以使用存储过程运行速度更快. 存储过程用于处理 ...

  8. PL/SQL -->隐式游标(SQL%FOUND)

    PL/SQL -->隐式游标(SQL%FOUND) 分类: SQL/PLSQL 基础2010-12-22 16:23 4084人阅读 评论(0) 收藏 举报 sqlexceptionoracle ...

  9. sql server 存储过程 output 和return的使用 方法,详解

    SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...

随机推荐

  1. kindeditor Springmvc 整和解决图片上传问题

    1. 在编辑页面引入js <script type="text/javascript" charset="utf-8" src="${baseP ...

  2. ie不支持的event.stopPropagation的解决方式

    if (event.stopPropagation) { // 针对 Mozilla 和 Opera event.stopPropagation(); } else if (window.event) ...

  3. 小程序[邮箱提取器-EmailSplider]总结

    1.背景情况     学东西做快的是付诸实践,写这个小程序的目的就是为了综合运用各个知识点,从而提升学习的效果.   2.涉及知识     A.Swing 的布局     B.Swing中,线程访问U ...

  4. 删除win7快捷方式小箭头

    删除win7快捷方式小箭头 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Sh ...

  5. 第一个PyQuery小demo

    1.打开网址https://www.v2ex.com/,查看其源码. 2.打开PyCharm编译器,新建工程c3-11,新建python file,命名为v2ex.py,同时,新建file,命名为v2 ...

  6. js基础(补10.10)

    1.内嵌式: <html> <head> <title></title> </head> <body> <a href=& ...

  7. C#连接Oracle数据库解决报错(需要安装Oracle客户端软件8.1.7)的问题

    1.通过nuget安装  ManagedDataAccess 2.引用 using Oracle.ManagedDataAccess.Client; 注:最低framework4.0 测试连接: // ...

  8. 无法加载MainifestResourceTransformer

    Cannot load implementation hint 'org.apache.maven.plugins.shade.resource.MainifestResourceTransforme ...

  9. 51nod1107(逆序对数&归并排序)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1107 题意:中文题诶- 思路:通过题意可以发现对于两点p1(x ...

  10. 领域驱动设计业务框架DMVP

    DMVP,全称DDD-MVP,是基于领域驱动设计(DDD)搭建的业务框架,整体设计符合DDD领域模型的规范,业务上达成了领域模型和代码的一一映射,技术上达成了高内聚低耦合的架构设计,开发人员不需要关注 ...