Techies-- 2 つの行があることはわかっていますが、1 つは 000020 で EMPNO に一致し、もう 1 つは 000030 で一致していますが、空の結果セットが得られます。何か案は?
呼び出しは次のとおりです。
CALL DB2INST1.EMP_MULTIPLE_XML(XMLPARSE(
DOCUMENT '<EMPLOYEE><EMPNO>000020</EMPNO><EMPNO>000030</EMPNO></EMPLOYEE>'));
変更された sproc は次のとおりです。
BEGIN
CREATE PROCEDURE DB2INST1.EMP_MULTIPLE_XML (IN DOC XML)
DYNAMIC RESULT SETS 1
READS SQL DATA
LANGUAGE SQL SPECIFIC EMP_MULTIPLE_XML
DECLARE CSR1 CURSOR WITH RETURN FOR
SELECT emp.EMPNO,
emp.FIRSTNME,
emp.LASTNAME,
emp.WORKDEPT
FROM DB2INST1.EMPLOYEE emp
WHERE emp.EMPNO IN
(SELECT X.EMPNO FROM
XMLTABLE('$d/EMPLOYEE/EMPNO' PASSING DOC AS "d" COLUMNS EMPNO CHAR(6) PATH 'EMPNO') AS X);
OPEN CSR1;
END