2011-12-27 219 views
0

我在DB2中编写触发器。里面,我想使用循环。 这是遍历select语句返回的一组值。 这怎么办? 有人请分享教程或链接解释这一点。 也可以嵌套循环吗?循环存储过程中

+0

你为什么循环?是否有可能改变你的陈述来设置工作?您需要的进一步解释可能有助于这方面的工作;在SQL中循环几乎(但不)始终违背正确的用法或惯例。 – 2011-12-27 17:20:10

回答

0

您可以在触发器使用游标:

http://en.wikipedia.org/wiki/Cursor_%28databases%29

一个简单的游标示例如下:

DECLARE SQLSTATE CHAR(5) DEFAULT '00000'; 
DECLARE p_sum INTEGER; 
SET p_sum = 0; 
DECLARE p_sal INTEGER; 

DECLARE c CURSOR FOR SELECT SALARY FROM EMPLOYEE; 
OPEN c; 

FETCH FROM c INTO p_sal; 

WHILE(SQLSTATE = '00000') DO 
    SET p_sum = p_sum + p_sal; 
    FETCH FROM c INTO p_sal; 
END WHILE; 

CLOSE c; 
+1

将OP引用到[关于游标的特定于DB2的文档页面](http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.sql.doc/ doc/c0024361.htm)可能会更有帮助,然后建议一个关于该主题的通用文章(更重要的是,因为该示例似乎取自前者)。 – 2011-12-27 15:54:25