目前在我的项目开发中需要根据某些条件生成记录数,其中表名存储在单独的表中。例如说xx表存储列名下的表名是tableInfo。
我以这样的方式编写了存储过程
DECLARE FGCURSOR CURSOR FOR SELECT tableInfo FROM xx WHERE col1='PO';
OPEN FGCURSOR;
FETCH FROM FGCURSOR INTO FILEGROUPMEM;
WHILE SQLCODE <> 100
DO
SET COUNTVal = 'SELECT COUNT(*) FROM ' || FILEGROUPMEM || ' WHERE ICLS= ' || CLASS || ' AND IVEN= ' || VENDOR || ' AND ISTY= ' || STYLE || ' AND ICLR= ' || COLOR || ' AND ISIZ= ' || SIZE ;
IF(COUNTVal >= 1) THEN
RETURN 1;
END IF;
FETCH FROM FGCURSOR INTO FILEGROUPMEM;
END WHILE;
CLOSE FGCURSOR;
在执行程序时遇到异常说
消息:[SQL0420] CAST 参数中的字符无效。原因 。. . . . : CAST 函数的参数中的字符不正确。恢复 。. . :将结果数据类型更改为可识别 CAST 参数中字符的类型,或更改参数以包含结果数据类型值的有效表示。再次尝试请求。