sql - 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>
解决方案
推荐阅读
- html - CSS padding-top 技巧不会给我正确的比例
- ios - 在 Apple TV 中使用 Apple 登录
- java - 在一系列偏移量之间从 Kafka 主题读取消息
- vba - 无法在输入框中输入范围
- excel - 删除 AM/PM,但保留 12h 格式
- forms - 在 Flutter 中填写完表单中的所有字段后关闭键盘?
- python - 如何在python中将时间和时区转换为日期?
- typescript - TypeScript 从其他项目绝对导入普通 TS 文件和全局范围声明
- protocol-buffers - 如何在 gRPC 中使用标量类型作为函数参数?
- visual-studio-code - 删除触摸栏上预配置的 VSCode 按钮