db2 c语言游标名称可以是变量,mysql c语言 游标能取多行吗
满意答案
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语言 游标能取多行吗相关推荐
- c语言规定对使用的变量必须,C语言为什么要规定对所用到的变量要“先定义,后使用”...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 int a=10; 以上一句话对变量a进行了声明,定义以及初始化 extern int a; 以上一句话仅仅对变量a进行了声明,将a的链接属性设置为ext ...
- c语言用指针访问简单变量,关于C语言指针,个人认为最经典、最简单的一个应用...
上大学的时候,老师总会向我们灌输一个概念,C语言的精髓是"指针". 粗浅地理解,指针也是一个变量,和其他类型的变量没什么本质的区别.只不过,他存储的变量是一个"有类型的& ...
- c语言里宏定义算变量嘛,C语言宏定义的一些总结
较大的C语言项目都会用大量的宏定义来组织代码,比较经典的代码就是Linux Kernel的头文件中用的宏定义.看起来宏展开就是做个替换而已,其实里面有比较复杂的规则,有关宏展开的语法规则此小结力图整理 ...
- c语言结构体结构体变量名,C语言结构体及结构体变量
一.结构体类型的定义 结构体是一种新数据类型,属构造类型,它由若干类型各异的"成员"组成:描述这些"成员"可以使用任何基本数据类型,甚至是另外一种构造数据类型都 ...
- C语言循环时无故释放变量吗,C语言 - while循环体内变量重新声明,陷入***循环。...
今天写一个实验代码时,用到了while(exp)循环.发现exp已经为false.但是依然死循环下去. float T = (float)work[srcNode] / (workAll/6); in ...
- mysql游标表间数据迁移_MySQL存储过程--通过游标遍历和异常处理迁移数据到历史表...
-- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表.DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_xx ...
- R语言在ggplot中使用变量指定柱状图的名称实战
R语言在ggplot中使用变量指定柱状图的名称实战 目录 R语言在ggplot中使用变量指定柱状图的名称实战
- T-SQL 游标名称的作用域
Transact-SQL 游标名称的作用域 Microsoft® SQL Server™ 2000 支持 DECLARE CURSOR 语句上的 GLOBAL 和 LOCAL 关键字以定义游标名称的作 ...
- 第2节:常量、变量与C语言的数据类型
点击上方"蓝字" 一个IT人共同提高的地方! 1 C语言常量变量 1.常量 常量是在程序运行过程中,其值不能被改变的量. 在C语言中常量分为:整型常量.实型常量.字符常量(普通字符 ...
最新文章
- Spring 5.0 源码编译, 403, 404 依赖pom 无法下载问题
- 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )
- SharePoint2013开发环境搭建(完整版:图文并茂)
- 【.NETCore 3】Ids4 ║ 多项目集成统一认证中心的思考
- 前端学习(2468):echart复习电商管理通过路由加载数据
- 在Kubernetes上运行区块链服务(BaaS)
- 用php判断大月小月,php 获取月第一天和最后一天 | 学步园
- Git学习05 --分支管理02
- 网络间谍组织 SideCopy 攻击印度政府和军队组织
- Android 动态改变布局属性RelativeLayout.LayoutParams.addRule()
- Twitter数据抓取
- 统计学系方法4.1补充理解
- 训练SnowNLP新模型
- 和平精英为什么服务器显示错误,和平精英为什么会出现错误代码5567?_和平精英错误代码5567解决步骤一览...
- 拍拍熊(APT-C-37),诱导方式、DNS、安卓远控
- vue2.0 实现页面导航提示引导
- python 身份证号码有效性验证
- Android离线文字转语音(TTS)原生实现
- 电泵井php和psi,电泵井测压安全技术.doc
- 运动手环SRRC认证办理
热门文章
- Tech·Ed 2009
- 用计算机画有常数的函数图像,信息技术应用 用计算机画函数图象教学设计及教案分析...
- 华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...
- java url接口_javaweb 后台使用url接口
- c++word书签_「职场必备」干货!WORD办公软件快捷键,小编整理拿走不谢
- 7月9日王者荣耀服务器维护,王者荣耀 7月9日体验服停机更新公告
- 登录id 黑苹果_黑苹果MacOSCatalina无法登录AppStore修复
- Please use boost/bind/bind.hpp + using namespace boost::placeholders
- ruby 生成哈希值_哈希== Ruby中的运算符
- 模拟退火算法解决np_P和NP问题与解决方案| 演算法