我创建了一个程序,它给出了编译错误 右副修护缺失
行#= 9列#= 21错误文本= PL / SQL:ORA-00907:错过了 括号
CREATE OR REPLACE PROCEDURE user1.trns (XMLDATA XMLTYPE)
IS
BEGIN
UPDATE table1 SET T$fld1 = 1, T$dat1 = TO_DATE(TO_CHAR(sysdate,'DD/MM/YYYY'),'DD/MM/YYYY')
WHERE table1.T$docn IN
(
SELECT DISTINCT docn
FROM XMLTABLE
('/DataSet/Document/DocumentRow'
PASSING XMLDATA COLUMNS
docn PATH '@DOCN'
)
);
COMMIT;
END trns;
/
我在这里做错了什么
答案 0 :(得分:1)
您缺少 数据类型,如下所示,请为XMLTABLE列提供数据类型 : 在这里我写了 varchar2(30)
CREATE OR REPLACE PROCEDURE user1.trns (XMLDATA XMLTYPE)
IS
BEGIN
UPDATE table1 SET T$fld1 = 1, T$dat1 = TO_DATE(TO_CHAR(sysdate,'DD/MM/YYYY'),'DD/MM/YYYY')
WHERE table1.T$docn IN
(
SELECT DISTINCT docn
FROM XMLTABLE
('/DataSet/Document/DocumentRow'
PASSING XMLDATA COLUMNS
docn varchar2(30) PATH '@DOCN'
)
);
COMMIT;
END trns;