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语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的 ...
最新文章
- nagios的搭建及配置----(中)
- 如何在Outlook中的电子邮件上显示快速操作按钮
- 一个JAXB Nuance:字符串与枚举(受限制的XSD字符串)
- linux命令找目录,linux中何种指令可以查看当前所处的目录位置?
- android消息机制 Message, Looper,Handler
- java logging 格式化_Spring源码使用java.util.logging打印日志
- BIEE配置多个实例(BIEE Multiple Instance)
- oracle中慢sql优化思路
- 5G浪潮推动 射频产业风起云涌
- 设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?...
- 如何远程断点调试本地localhost项目
- 电子通信计算机行业分类,电子信息产业行业分类目录
- dnf外挂java代码,使用Java实现简朴的斗地主案例_rust辅助,绝地求生卡盟
- cdma特有效应_[多选] 相对于IS-95A,下列特征哪些是CDMA20001x系统所特有的().
- 如何建立高效的需求管理机制?
- ​SQL注入非常详细总结
- ubuntu live cd制作
- 翻译记忆软件-塔多思TRADO经典教程_4
- ElasticSearch常用搜索关键字整理
- 如何基于 ZEGO SDK 实现 Android 变声/混响/立体声
热门文章
- 在EDGE中模拟IE访问网页
- ThreadLocal详解分析
- C8051F系列单片机技术问答
- 手机二次认证怎么操作?关于二次认证的常见问题!
- 佳能Canon imagePROGRAF iPF6410S 打印机驱动
- C#发送会议(约会)邀请
- Nessus快速上手-扫描任务
- 北漂五年,我回家了。后悔吗?
- “JTAG Warning: T-bit of XPSR is 0 but should be 1. Changed to 1.” 解决方案
- python 每天定时执行app_python简单的自动化APP启动时间测试