1、insert into "test"
(
select char(f_index) from T_QA_RPT_FACE_MONTH where F_RPT_ID=0
);
如果“select char(f_index) from T_QA_RPT_FACE_MONTH where F_RPT_ID=0“
返回結果數為0,那么test表中不會插入記錄。
2、存儲過程里用for語句比while loop好用些:(類似VB語法)
SET SCHEMA MES ;
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","MES";
CREATE PROCEDURE "MES"."P_QA_TEST" ( )
DECLARE iCount INT DEFAULT 0;
SET iCount = 0;
FOR dayrpt AS SELECT * FROM T_QA_RPT_FACE_DAY WHERE F_RPT_ID > 0 DO
ADD_BONUS:
for monrpt as SELECT * FROM T_QA_RPT_FACE_MONTH WHERE F_RPT_ID > 0 DO
if (monrpt.F_INDEX = dayrpt.F_INDEX) AND (monrpt.F_TYPE = dayrpt.F_TYPE) THEN
SET iCount=iCount+1;
insert into "test" values(char(iCount));
LEAVE ADD_BONUS;
END IF;
end for ADD_BONUS;
END FOR;
return iCount;
END;
3、上例中:
FOR dayrpt AS SELECT * FROM T_QA_RPT_FACE_DAY WHERE F_RPT_ID > 0 DO
dayrpt 就是后面那個select語句的結果集,即for語句只需讀一次表,而不會像游標那樣鎖定表然后進行逐記錄select