关于网友提出的“ DB2存储过程入门级问题”问题疑问,本网通过在网上对“ DB2存储过程入门级问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: DB2存储过程入门级问题
描述: 如何在DB2存储过程中引用定义的变量。
看下面的代码
DROP PROCEDURE FRP.CHECKTABLE
CREATE PROCEDURE CHECKTABLE ()
LL: BEGIN
DECLARE V_AT_END , FIELDCOUNT INTEGER DEFAULT 0;--统计每个字段为NULL的记录数
DECLARE ALLCOUNT INTEGER DEFAULT 0;--查询该表的总记录数
DECLARE TABLENAME VARCHAR(50);--表名
DECLARE FIELDNAME VARCHAR(50);--字段
DECLARE FLAG VARCHAR(1);--标志位
DECLARE C1 CURSOR
FOR SELECT TABLENAME,FIELDNAME,FLAG FROM LOGTABLE;--LOGTABLE保存着所有表及其字段
DECLARE CONTINUE HANDLER FOR NOT FOUND SET V_AT_END = 1;
OPEN C1;
FETCH_LOOP: LOOP
FETCH C1 INTO TABLENAME,FIELDNAME,FLAG;
IF V_AT_END <> 0 THEN
LEAVE FETCH_LOOP;
END IF;
IF FLAG <>'0' THEN--1:允许 0:禁止
-- SET ALLCOUNT = (SELECT COUNT(1) FROM TABLENAME);--查询总记录数
-- SET FIELDCOUNT = (SELECT COUNT(1) FROM TABLENAME WHERE FIELD IS NULL);--查询一字段中为空的记录数
SELECT COUNT(1) INTO ALLCOUNT FROM TABLENAME;
SELECT COUNT(1) INTO FILECOUNT FROM TABLENAME WHERE FIELDNAME IS NULL;
INSERT INTO LOGRESULT VALUES(CURRENT DATE,TABLENAME, FIELDNAME, ALLCOUNT,FIELDCOUNT); --插入日志表中
END IF;
END LOOP ;--FETCH_LOOP;
END LL
在后面我想引用TABLENAME,FIELDNAME,直接这样写的话,执行的时候它把这当作表名了,我想要的是这个变量的值。
解决方案1: 上大学学过一点点。都忘记了!小顶一下
以上介绍了“ DB2存储过程入门级问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3017094.html