DECLARE CURSOR FOR的使用
使用目的,利用以时间等条件参照其他表格,将会议目录抽取出来(游标的执行结果),然后以添加其他的文字形式对
结果进行修饰,由于最终目的是将会议目录以邮件的形势发布出去,所以单一的数据行查询的话,无法满足我想要得
集合结果(根据数据库设计方式不同),所以利用触发器来接受由外部发来的参数,然后利用游标将参数为条件提取数
据集,就是这样。
触发器游标部分的SQL文内容:
DECLARE @ROWSPACE VARCHAR(MAX)
DECLARE @CHARSPACE VARCHAR(MAX)
DECLARE @KARAMARK VARCHAR(6)
DECLARE @PART VARCHAR(MAX)
DECLARE @UNIONALL VARCHAR(MAX)
SET @ROWSPACE = CHAR(13)+ CHAR(10) -- 改行
SET @CHARSPACE = ' ' -- 空格
SET @KARAMARK = ' ~ '
SET @LIST_CD = (SELECT LIST_CD FROM MST_MEETING WHERE YEAR = @param_YEAR AND MEETING_CD = @param_MEETING_CD)
SET @PART = ''
SET @UNIONALL = ''
BEGIN
DECLARE LOOP_T CURSOR FOR --游标的宣言
-- 以条件提取结果集的一部分
SELECT
@CHARSPACE + ISNULL(CONVERT(VARCHAR(10), DATE, 111), '')
+ @CHARSPACE + ISNULL(NAME, '')
+ @CHARSPACE + ISNULL(CONVERT(VARCHAR(5), START_TIME, 108), '')
+ @KARAMARK + ISNULL(CONVERT(VARCHAR(5), END_TIME, 108), '') AS DETAILS
FROM T_MEETING_LIST WHERE YEAR = @param_YEAR AND MEETING_CD = @param_MEETING_CD
--打开游标
OPEN LOOP_T;
-- 将提取结果带入游标
FETCH NEXT FROM LOOP_T INTO @PART;
WHILE @@FETCH_STATUS = 0
BEGIN
-- 对游标内容进行修饰,如该行
SET @UNIONALL = @UNIONALL + @ROWSPACE + @PART
-- 将修饰内容代入游标
FETCH NEXT FROM LOOP_T INTO @PART;
END;
-- 关闭游标
CLOSE LOOP_T;
-- 解除游标参照
DEALLOCATE LOOP_T;
-- 将游标内容代入最后结果(执行结果的红色部分)
SELECT DATE+'会议目录:' + @ROWSPACE + @UNIONALL
END
执行结果:
-----------------------------------------------------------------------------------------------------------
2008-12-26 会议目录:
2008-12-26 会议1 10:00 ~ 12:00
2008-12-26 会议2 13:00 ~ 14:00
2008-12-26 会议3 14:10 ~ 15:30
2008-12-26 会议4 15:40 ~ 17:00
http://hi.baidu.com/mali1979/blog/item/6d74b410ffd9b2fbc2ce79b6.html
DECLARE CURSOR FOR的使用相关推荐
- Springboot+sqlserver+Quartz整合报错: Failure obtaining db row lock: 第 1 行: 只有 DECLARE CURSOR 才允许使用 FOR U
1.报错信息 org.springframework.context.ApplicationContextException: Failed to start bean 'quartzSchedule ...
- 4GL之Non-SCROLLING CURSOR
在4gl中CURSOR可以说是每一个程序中都会有的,而CURSOR又分为三种SCROLLING CURSOR.Non-SCROLLING CURSOR.LOCKING CURSOR. Non-SCRO ...
- SQL游标(cursor)详细说明及内部循环使用示例
游标 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果.每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理. 游标是处理 ...
- 【oracle】补充 cursor 基本例子
[oracle]补充 cursor 基本例子 1118-02补充 cursor 基本例子 查看 共享的命令: cmd fsmgmt.msc /* cursor 1.参数列表,is <select ...
- oracle的cursor的介绍
oracle的cursor的介绍 一 概念 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义. 游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在 ...
- oracle游标指针移动时机,oracle--游标(cursor)
1.游标是: 一种PL/SQL控制结构,相当于java中的Iterator ,它是指向结果集的指针.指向结果集第一条记录的前一条,每次fetch 都会向下移动下 游标并不是一个数据库对象,只是存留在内 ...
- Oracle中Cursor介绍
一 概念 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从 存放在磁盘的表中调到计算机内存中进行处理,最后将处 ...
- oracle中的cursor属性有哪些,Cursor语法及理解
游标的两种概念 共享游标 : 是用户提交 SQL 或 PL/SQL 程序块到 Oracle 的 share pool 之后,在 library cache 中生成的一个可执行对象,这个对象我们称之为游 ...
- 在SqlServer存储过程中使用Cursor(游标)操作记录
1. 为何使用游标: 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式.用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的 ...
最新文章
- Cocos2d-x和时间有关的代码
- OpenGL 平行粒子的实例
- mysql load data 乱码的问题
- bat脚本 rar压缩屏蔽某文件夹 不压缩某文件夹
- 2小时部署实时反欺诈深度学习模型 —— IBM主机机器学习平台社区版简介
- 超级炫酷的3D旋转美女图——Python实现
- 抢票助手-for 12306买火车票.订票助手.高铁.动车.春运.车票管家.自动刷票.列车时刻表
- 手机蓝牙耳机什么牌子的好?618性价比超高的蓝牙耳机推荐
- 【ACWing】3626. 三元一次方程
- 手机静音状态下也让播出声音
- A - 卡牌游戏 III
- 【读书笔记】《心流:最优体验心理学》——序
- 什么是超链接:下划线、样式、字体颜色、代码怎么做?
- Shell系统学习之什么是Shell
- C++的count函数
- 提取图片中的文字怎么做?这几种简单方法别错过
- linux使用gaussian提交命令,使用Gaussian时的几个实用脚本和命令
- 非容器化Jenkins连接Kubernetes
- Arduino配置WS2812及Adafruit_NeoPixel库的使用
- 主题 支持 php 7.2,最新七星修改二开正米酷影视7.2完整版(支持自定义解析/支持PHP7.0及以上)...