技术人员——当我尝试部署我知道在 Linux v9.7 上工作的存储过程时,我在 i db2 6.1 安装中找不到 *LIBL 类型 *SQLUDT 中的 sql0204 XML。我试图让它工作的原因是因为我真的需要传递一个表(或数组)变量。我找不到将多维数组发送到 i 的 6.1 v 上的 sproc 的方法,所以我想我会尝试使用 xml 文档来解决这个问题。但这也失败了......有人对我如何解决这个问题有任何建议吗?
这是适用于 v9.7、Linux 的存储过程:
CREATE PROCEDURE HCMDEV.EMP_MULTIPLE_XML (IN DOC XML)
DYNAMIC RESULT SETS 1
READS SQL DATA
LANGUAGE SQL SPECIFIC EMP_MULTIPLE_XML
P1: BEGIN
DECLARE CSR1 CURSOR WITH RETURN FOR
SELECT emp.EMPID,
emp.FIRSTNAME,
emp.LASTNAME,
emp.DIVISION,
emp.DISTRICT,
emp.LOCATION,
emp.OPERATIONALAREA,
emp.TERMDATE,
emp.REHIREDATE,
emp.HIREDATE,
emp.ADDRESSLINE1,
emp.ADDRESSLINE2,
emp.CITY,
emp.STATE,
emp.ZIPCODE,
emp.TELEPHONE1,
emp.POSITIONCODE,
emp.POSITIONTITLE,
emp.HIRECODE
FROM HCMDEV.EMPLOYEE emp
WHERE EMP.EMPID IN
(SELECT X.EMPID
FROM XMLTABLE('$d/EMPLOYEE/EMPID' PASSING DOC AS "d" COLUMNS EMPID CHAR(9) PATH '.') AS X);
OPEN CSR1;
END P1