使用目的,利用以时间等条件参照其他表格,将会议目录抽取出来(游标的执行结果),然后以添加其他的文字形式对

结果进行修饰,由于最终目的是将会议目录以邮件的形势发布出去,所以单一的数据行查询的话,无法满足我想要得

集合结果(根据数据库设计方式不同),所以利用触发器来接受由外部发来的参数,然后利用游标将参数为条件提取数

据集,就是这样。

触发器游标部分的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的使用相关推荐

  1. Springboot+sqlserver+Quartz整合报错: Failure obtaining db row lock: 第 1 行: 只有 DECLARE CURSOR 才允许使用 FOR U

    1.报错信息 org.springframework.context.ApplicationContextException: Failed to start bean 'quartzSchedule ...

  2. 4GL之Non-SCROLLING CURSOR

    在4gl中CURSOR可以说是每一个程序中都会有的,而CURSOR又分为三种SCROLLING CURSOR.Non-SCROLLING CURSOR.LOCKING CURSOR. Non-SCRO ...

  3. SQL游标(cursor)详细说明及内部循环使用示例

    游标 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果.每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获取记录,并赋给主变量,交由主语言进一步处理. 游标是处理 ...

  4. 【oracle】补充 cursor 基本例子

    [oracle]补充 cursor 基本例子 1118-02补充 cursor 基本例子 查看 共享的命令: cmd fsmgmt.msc /* cursor 1.参数列表,is <select ...

  5. oracle的cursor的介绍

    oracle的cursor的介绍 一  概念      游标是SQL的一个内存工作区,由系统或用户以变量的形式定义. 游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在 ...

  6. oracle游标指针移动时机,oracle--游标(cursor)

    1.游标是: 一种PL/SQL控制结构,相当于java中的Iterator ,它是指向结果集的指针.指向结果集第一条记录的前一条,每次fetch 都会向下移动下 游标并不是一个数据库对象,只是存留在内 ...

  7. Oracle中Cursor介绍

    一  概念 游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从 存放在磁盘的表中调到计算机内存中进行处理,最后将处 ...

  8. oracle中的cursor属性有哪些,Cursor语法及理解

    游标的两种概念 共享游标 : 是用户提交 SQL 或 PL/SQL 程序块到 Oracle 的 share pool 之后,在 library cache 中生成的一个可执行对象,这个对象我们称之为游 ...

  9. 在SqlServer存储过程中使用Cursor(游标)操作记录

    1. 为何使用游标:      使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式.用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的 ...

最新文章

  1. Cocos2d-x和时间有关的代码
  2. OpenGL 平行粒子的实例
  3. mysql load data 乱码的问题
  4. bat脚本 rar压缩屏蔽某文件夹 不压缩某文件夹
  5. 2小时部署实时反欺诈深度学习模型 —— IBM主机机器学习平台社区版简介
  6. 超级炫酷的3D旋转美女图——Python实现
  7. 抢票助手-for 12306买火车票.订票助手.高铁.动车.春运.车票管家.自动刷票.列车时刻表
  8. 手机蓝牙耳机什么牌子的好?618性价比超高的蓝牙耳机推荐
  9. 【ACWing】3626. 三元一次方程
  10. 手机静音状态下也让播出声音
  11. A - 卡牌游戏 III
  12. 【读书笔记】《心流:最优体验心理学》——序
  13. 什么是超链接:下划线、样式、字体颜色、代码怎么做?
  14. Shell系统学习之什么是Shell
  15. C++的count函数
  16. 提取图片中的文字怎么做?这几种简单方法别错过
  17. linux使用gaussian提交命令,使用Gaussian时的几个实用脚本和命令
  18. 非容器化Jenkins连接Kubernetes
  19. Arduino配置WS2812及Adafruit_NeoPixel库的使用
  20. 主题 支持 php 7.2,最新七星修改二开正米酷影视7.2完整版(支持自定义解析/支持PHP7.0及以上)...

热门文章

  1. muse计算机术语,MUSE 文件扩展名: 它是什么以及如何打开它?
  2. Darknet安装及使用
  3. 计算机技术与软件专业技术资格有哪些?
  4. 有没有可以每隔45分钟就提醒一下的便签APP
  5. c语言中设置一个终止字母,C语言exit()函数:用于正常终止程序
  6. 二级下拉列表联动 select 网页 html5
  7. SCL-90心理测试系统(基于c语言)
  8. 倒计时广告关闭案例实现 js js小技巧
  9. 【Sql】自动去掉字段中末尾的0 删除尾随0
  10. Java学习路线图(2020最新版)