My sql之存储过程+游标
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之存储过程+游标的更多相关文章
- sql server 存储过程---游标的循环
sqlserver中的循环遍历(普通循环和游标循环) sql 经常用到循环,下面介绍一下普通循环和游标循环 1.首先需要一个测试表数据Student
- sql server 存储过程使用游标记录
sql server 存储过程使用游标记录--方便下次参考使用 游标的组成: 声明游标 打卡游标 从一个游标中查找信息 关闭游标 释放游标 游标类型: 静态游标 动态游标 只进游标 键集驱动游标 静态 ...
- SQL Server存储过程Return、output参数及使用技巧
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...
- SQL Server 存储过程(转载)
SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...
- [转]关于SQL分页存储过程的分析
[转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用 ...
- (摘录)SQL Server 存储过程
文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...
- SQL Server 存储过程具体解释
SQL Server 存储过程具体解释 存储过程的优缺点 ◆长处: 运行速度更快. 存储过程仅仅在创造时进行编译,而一般SQL语句每运行一次就编译一次,所以使用存储过程运行速度更快. 存储过程用于处理 ...
- PL/SQL -->隐式游标(SQL%FOUND)
PL/SQL -->隐式游标(SQL%FOUND) 分类: SQL/PLSQL 基础2010-12-22 16:23 4084人阅读 评论(0) 收藏 举报 sqlexceptionoracle ...
- sql server 存储过程 output 和return的使用 方法,详解
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...
随机推荐
- [pe531]Chinese leftovers
题意:1e6~1e6+5000之间任意两个之间同余方程组的解.余数为欧拉函数. 解题关键:线性筛预处理,扩展中国剩余定理暴力求解. #include<cstdio> #include< ...
- 转:isualvm远程监控Tomcat
一.Java VisualVM 概述 对于使用命令行远程监控jvm 太麻烦 . 在jdk1.6 中 Oracle 提供了一个新的可视化的. JVM 监控工具 Java VisualVM .jvisua ...
- PKI标准、CA采取的规范、X509、PKCS
PKI:Public Key Infrastructure 公钥基础设施 PKI标准可以分为第一代和第二代标准. 第一代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Crypt ...
- OpenCPN介绍及编译
OpenCPN介绍及编译 OpenCPN是一个航海应用软件系统,采用wxWidgets界面框架,支持OpenGL,可以跨平台运行在Windows , Linux , Mac电脑上. OpenCPN是一 ...
- Spring入门第七课
Bean之间的关系:继承和依赖. 继承Bean配置 Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父bean的Bean称为子Bean. 子Bean从父Bean中继承配置, ...
- vb常用命名空间
摘自:http://www.2cto.com/kf/201211/170837.html 感谢 (一)如下是系统中分离出来Imports MicrosoftImports Microsoft.CSha ...
- Flask RESTful API搭建笔记
之前半年时间,来到项目的时候,已经有一些东西,大致就是IIS+MYSQL+PHP. 所以接着做,修修补补,Android/iOS与服务器数据库交换用PHP, Web那边则是JS+PHP,也没有前后端之 ...
- Unity学习(十三)场景优化之四叉树
http://blog.sina.com.cn/s/blog_89d90b7c0102wyfw.html 四叉树是在二维图片中定位像素的唯一适合的算法.因为二维空间(图经常被描述的方式)中,平面像素可 ...
- 阿里云ECS 自己搭建 hyperledger fabric的错误
常常有在本地搭建没问题,到阿里云上跑的时候 fabric启动不成功的问题. 引用: https://yq.aliyun.com/articles/238940 解决方案 1.在e2e_cli 下有个d ...
- [Xcode 实际操作]五、使用表格-(10)插入UITableView单元格
目录:[Swift]Xcode实际操作 本文将演示如何插入一行单元格. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首先添加两个协 ...