【问题标题】:Oracle XMLTYPE: parameter like <123.xml/> not workingOracle XMLTYPE:像 <123.xml/> 这样的参数不起作用
【发布时间】:2013-12-24 11:55:38
【问题描述】:

我正在使用 Oracle 11g,其中我将文件名传递给函数说

FUNCTION test(file_name IN XMLTYPE)

它接受像&lt;file1.xml/&gt; 这样的文件名,但是当我将文件名作为&lt;123.xml/&gt; 传递时,它会抛出Oracle 类型异常错误。但是,如果我再次以字符开头的文件名作为&lt;T123.xml/&gt; 传递,那么它工作正常。

请告诉我如何将文件名处理为&lt;123.xml/&gt;

【问题讨论】:

  • 你是如何调用这个函数的,你到底得到了什么错误?请将调用代码和整个错误堆栈添加到问题中。你为什么将文件名作为XMLTYPE 传递,而不是作为字符串传递?

标签: oracle oracle11g xmltype


【解决方案1】:

&lt;123.xml/&gt; 不是有效的 XML:标签名称不能以数字开头(或 .-)。 XML 上的维基百科文章对格式良好有很好的总结。您发布的另外两个示例是有效的 XML,但标签名称格式正确。

不过,您的用例看起来很奇怪。如果您想将一个简单的文件名传递给该函数,为什么不传递一个纯字符串?如果您确实想传递在 XML 容器中编码的文件名,这样的事情会更有意义:

<file name="foo.bar"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多