【发布时间】:2019-01-08 16:55:35
【问题描述】:
我正在 pl/sql 中为 Oracle 数据库编写一个用户定义的函数。该函数的目的是将 xml 字段转换为 clob。这是代码:
CREATE OR REPLACE FUNCTION IDS_ORA.castField_xml_to_clob (xmlField IN XMLTYPE)
RETURN CLOB
AS
BEGIN
RETURN XMLSERIALIZE(CONTENT xmlField AS CLOB NO INDENT)
END;
/
编译失败并出现以下错误:
PLS-00103:在期待其中一个时遇到符号“XMLFIELD” 下列的: 。 ( ) , * @ % & = - + at in is mod 余数 not rem => o != o ~= >= and or like like2
like4 likec as between from using ||多集成员子多集 函数:IDS_ORA.CASTFIELD_XML_TO_NVARCHAR(IDS_ORA@172.25.1.134:1522:sviluppo) 5 31
对我来说这似乎是一个一般性错误,所以我尝试在查询中直接使用XMLSERIALIZE,它可以工作。
SELECT XMLSERIALIZE(CONTENT "AttributesValue" AS CLOB no INDENT)
FROM IDS_ORA."Job";
这表示语法是正确的,它在抱怨什么?
【问题讨论】:
标签: sql xml oracle plsql user-defined-functions