为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:ky10
【CPU】:16核
【问题描述】*:
在大量调用某个存储过程时,报错:
Error Msg:Try extend collection beyond limit
-7195: XXX line -1
-7195: XXX line 20
存储过程如下:
DECLARE
varUserName VARCHAR(48);
arrParentDir TypeArrVAR;
arrApproverDir TypeArrVAR;
arrSharedDir TypeArrVAR;
varTempFile VARCHAR(48);
varTempShare VARCHAR(48);
BEGIN
SELECT strusername INTO varUserName FROM tbl_alarmconnector WHERE uiduserid = strUserID;
SELECT ancestor BULK COLLECT INTO arrParentDir from tbl_swapfile_tree where descendant = strFileID;
SELECT fileid BULK COLLECT INTO arrApproverDir from tbl_approveshare where strshareuser = varUserName and ishareapprovestate != 3 and ishareapprovestate != 9 and icanceledshare != 1;
SELECT sfpid BULK COLLECT INTO arrSharedDir from tbl_share_swapfile_relate ssr JOIN tbl_share_user_relate sur ON ssr.uidshareid = sur.uidshareid WHERE sur.upid = strUserID;
FOR item IN (SELECT * FROM TABLE (arrParentDir)) LOOP
FOR item1 IN (SELECT * FROM TABLE (arrApproverDir)) LOOP
IF item.COLUMN_VALUE = item1.COLUMN_VALUE THEN
RETURN 1;
END IF;
END LOOP;
END LOOP;
FOR item IN (SELECT * FROM TABLE (arrParentDir)) LOOP
FOR item1 IN (SELECT * FROM TABLE (arrSharedDir)) LOOP
IF item.COLUMN_VALUE = item1.COLUMN_VALUE THEN
RETURN 1;
END IF;
END LOOP;
END LOOP;
RETURN 0;
END;