满意答案

xuyingcxm

2015.02.03

采纳率:45%    等级:12

已帮助:7182人

1、 无返回结果语句,如:INSERT,UPDATE,DROP, DELETE等

2、 select语句返回单行变量并可传给本地变量(select ..into)

3、 返回多行结果集的select语句,并可使用MySQL游标循环处理

注意,存储过程返回的多行结果集,可以被客户端程序(如php)所接收,但要在一个存储过程中接收另一个存储过程的结果集是不可能的,一般解决办法是存入临时表供其它过程共用

4、 prepare语句

以下主要讲述游标及prepare部分

游标

定义

DECLARE cursor_name CURSOR FOR SELECT_statement;

游标操作

OPEN 打开游标

OPEN cursor_name;

FETCH 获取游标当前指针的记录,并传给指定变量列表,注意变量数必须与MySQL游标返回的字段数一致,要获得多行数据,使用循环语句去执行FETCH

FETCH cursor_name INTO variable list;

CLOSE关闭游标

CLOSE cursor_name ;

注意:MySQL的游标是向前只读的,也就是说,你只能顺序地从开始往后读取结果集,不能从后往前,也不能直接跳到中间的记录.

一个完整的例子:

定义本地变量

DECLARE o varchar(128);

定义游标

DECLARE ordernumbers CURSOR

FOR

SELECT callee_name FROM account_tbl where acct_timeduration=10800;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;

SET no_more_departments=0;

打开游标

OPEN ordernumbers;

循环所有的行

REPEAT

-- Get order number

FETCH ordernumbers INTO o;

update account set allMoneyallMoney=allMoney+72,lastMonthConsumelastMonthConsume=lastMonthConsume-72 where NumTg=@o;

循环结束

UNTIL no_more_departments

END REPEAT;

关闭游标

CLOSE ordernumbers;

DELIMITER $$

USE `kubauser`$$

DROP PROCEDURE IF EXISTS `cursortest`$$

CREATE DEFINER=`coo8new`@`%` PROCEDURE `cursortest`(OUT a VARCHAR(50),OUT b VARCHAR(50))

BEGIN

DECLARE _outuserid VARCHAR(50);

DECLARE _kubauserid VARCHAR(50);

DECLARE flag INT;

DECLARE update_cursor CURSOR

FOR

SELECT outuserid,kubauserid FROM ecuser_cooperationuser;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1;

SET flag=0;

OPEN update_cursor;

REPEAT /*循环*/

FETCH update_cursor INTO _outuserid,_kubauserid;

SET a=_outuserid;

SET b=_kubauserid;

/*update set where*/

UNTIL flag

END REPEAT;

CLOSE update_cursor ;

END$$

DELIMITER ;

转载,仅供参考。

00分享举报

db2 c语言游标名称可以是变量,mysql c语言 游标能取多行吗相关推荐

  1. c语言规定对使用的变量必须,C语言为什么要规定对所用到的变量要“先定义,后使用”...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int a=10; 以上一句话对变量a进行了声明,定义以及初始化 extern int a; 以上一句话仅仅对变量a进行了声明,将a的链接属性设置为ext ...

  2. c语言用指针访问简单变量,关于C语言指针,个人认为最经典、最简单的一个应用...

    上大学的时候,老师总会向我们灌输一个概念,C语言的精髓是"指针". 粗浅地理解,指针也是一个变量,和其他类型的变量没什么本质的区别.只不过,他存储的变量是一个"有类型的& ...

  3. c语言里宏定义算变量嘛,C语言宏定义的一些总结

    较大的C语言项目都会用大量的宏定义来组织代码,比较经典的代码就是Linux Kernel的头文件中用的宏定义.看起来宏展开就是做个替换而已,其实里面有比较复杂的规则,有关宏展开的语法规则此小结力图整理 ...

  4. c语言结构体结构体变量名,C语言结构体及结构体变量

    一.结构体类型的定义 结构体是一种新数据类型,属构造类型,它由若干类型各异的"成员"组成:描述这些"成员"可以使用任何基本数据类型,甚至是另外一种构造数据类型都 ...

  5. C语言循环时无故释放变量吗,C语言 - while循环体内变量重新声明,陷入***循环。...

    今天写一个实验代码时,用到了while(exp)循环.发现exp已经为false.但是依然死循环下去. float T = (float)work[srcNode] / (workAll/6); in ...

  6. mysql游标表间数据迁移_MySQL存储过程--通过游标遍历和异常处理迁移数据到历史表...

    -- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表.DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_xx ...

  7. R语言在ggplot中使用变量指定柱状图的名称实战

    R语言在ggplot中使用变量指定柱状图的名称实战 目录 R语言在ggplot中使用变量指定柱状图的名称实战

  8. T-SQL 游标名称的作用域

    Transact-SQL 游标名称的作用域 Microsoft® SQL Server™ 2000 支持 DECLARE CURSOR 语句上的 GLOBAL 和 LOCAL 关键字以定义游标名称的作 ...

  9. 第2节:常量、变量与C语言的数据类型

    点击上方"蓝字" 一个IT人共同提高的地方! 1 C语言常量变量 1.常量 常量是在程序运行过程中,其值不能被改变的量. 在C语言中常量分为:整型常量.实型常量.字符常量(普通字符 ...

最新文章

  1. Spring 5.0 源码编译, 403, 404 依赖pom 无法下载问题
  2. 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )
  3. SharePoint2013开发环境搭建(完整版:图文并茂)
  4. 【.NETCore 3】Ids4 ║ 多项目集成统一认证中心的思考
  5. 前端学习(2468):echart复习电商管理通过路由加载数据
  6. 在Kubernetes上运行区块链服务(BaaS)
  7. 用php判断大月小月,php 获取月第一天和最后一天 | 学步园
  8. Git学习05 --分支管理02
  9. 网络间谍组织 SideCopy 攻击印度政府和军队组织
  10. Android 动态改变布局属性RelativeLayout.LayoutParams.addRule()
  11. Twitter数据抓取
  12. 统计学系方法4.1补充理解
  13. 训练SnowNLP新模型
  14. 和平精英为什么服务器显示错误,和平精英为什么会出现错误代码5567?_和平精英错误代码5567解决步骤一览...
  15. 拍拍熊(APT-C-37),诱导方式、DNS、安卓远控
  16. vue2.0 实现页面导航提示引导
  17. python 身份证号码有效性验证
  18. Android离线文字转语音(TTS)原生实现
  19. 电泵井php和psi,电泵井测压安全技术.doc
  20. 运动手环SRRC认证办理

热门文章

  1. Tech·Ed 2009
  2. 用计算机画有常数的函数图像,信息技术应用 用计算机画函数图象教学设计及教案分析...
  3. 华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...
  4. java url接口_javaweb 后台使用url接口
  5. c++word书签_「职场必备」干货!WORD办公软件快捷键,小编整理拿走不谢
  6. 7月9日王者荣耀服务器维护,王者荣耀 7月9日体验服停机更新公告
  7. 登录id 黑苹果_黑苹果MacOSCatalina无法登录AppStore修复
  8. Please use boost/bind/bind.hpp + using namespace boost::placeholders
  9. ruby 生成哈希值_哈希== Ruby中的运算符
  10. 模拟退火算法解决np_P和NP问题与解决方案| 演算法