首页 > 解决方案 > ORACLE SQL:将从零开始的 NUMBER 转换为 XML 时出现问题

问题描述

我在 Oracle 中有一个存储过程,可以从一些 SQL 数据生成 XML。我发现对于那些 NUMBER 类型的字段,如果它们以 0 开头,则在输出 XML 中,不会显示 0,只显示小数。示例:如果值为 0.82,则显示为:

<amount>.82</amount>

我已经看到这可以通过执行 to_Char (0.82, '9990.00') 来解决,但我想知道是否有一些更通用的方法可以在 PL 中使用,以便能够转换这种类型在生成 XML 时(不必逐个查看,因为要查看的字段很多),我想要更通用的东西,这样如果明天添加新字段,您就不必触摸 PL执行转换。XMLType 有什么选择吗?我正在使用 sys_xmlgen 来生成它。

对于它的帮助,输出 xml 会针对一个 xsd 进行验证,其中所有数字字段都是新定义的类型:

<xs:simpleType name="_tipo_num2dec">
<xs:restriction base="xs:decimal">
    <xs:pattern value="-?[0-9]+(\.[0-9]{1,2})?">
    </xs:pattern>
</xs:restriction>
</xs:simpleType>

标签: sqlxmloraclenumber-formatting

解决方案


推荐阅读