WEB开发网
开发学院数据库DB2 DB2 9.5 SQL Procedure Developer 认证考试 735 准... 阅读

DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第 1 部分

 2010-10-01 16:37:04 来源:WEB开发网   
核心提示: 现在,我们使用 WHILE 循环语句来做同样的事情,DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第 1 部分(10),清单 14. WHILE 循环的例子CREATE PROCEDURE DEPT_REPT (DEPTIN char(3), OUT p

现在,我们使用 WHILE 循环语句来做同样的事情。

清单 14. WHILE 循环的例子

CREATE PROCEDURE DEPT_REPT (DEPTIN char(3), OUT p_counter INTEGER)
Pl: BEGIN
  DECLARE v_at_end , v_counter INTEGER DEFAULT 0;
  DECLARE v_lastname VARCHAR(15);
  DECLARE v_birthd, v_hired DATE;
  DECLARE c1 CURSOR
   FOR SELECT lastname, hiredate, birthdate FROM employee
     WHERE WORKDEPT = deptin;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_at_end = 1;
  OPEN c1;
  FETCH c1 INTO v_lastname, v_hired, v_birthd;
  WHILE (v_at_end = 0)
  DO 
   INSERT INTO REPORT_INFO_DEPT
        values(v_lastname, v_hired, v_birthd);
   SET v_counter = v_counter + 1;     
   FETCH c1 INTO v_lastname, v_hired, v_birthd;  
  END WHILE;
  SET p_counter = v_counter;
 END P1

REPEAT 循环非常类似于 WHILE 循环,只不过条件是在最后检查的(因此,它实际上是一个 UNTIL 循环)。

现在,我们使用包含 FOR 循环语句的一个过程来填充 REPORT_INFO_DEPT 表。

清单 15. FOR 循环的例子

CREATE PROCEDURE DEPT_REPT1 (DEPTIN char(3), OUT p_counter INT)
P1:BEGIN
  DECLARE v_counter INT DEFAULT 0;
  FOR dept_loop AS
   SELECT lastname, hiredate, birthdate FROM employee
     WHERE WORKDEPT = deptin
  DO 
   INSERT INTO REPORT_INFO_DEPT values
(dept_loop.lastname,dept_loop.hiredate,dept_loop.birthdate);
   SET v_counter = v_counter + 1;   
  END FOR;
  SET p_counter = v_counter;
 END P1

上一页  5 6 7 8 9 10 

Tags:DB SQL Procedure

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接