【发布时间】:2017-04-12 13:23:24
【问题描述】:
当我使用 TOAD 对 Oracle 11g 数据库执行以下 SQL 时,成功返回完整格式的 XML:
With T As (SELECT dbms_xmlgen.getxml('SELECT m.trans_message FROM xml_nodes_ams_in a, message m WHERE a.id = m.msg_id AND a.UPN IN(''A30971016528VE8K'',''A30971016529VE84'') ORDER BY a.upn ASC'
) As output_xml from dual
) select dbms_xmlgen.Convert(output_xml,1) from T
但是,当我对我们新安装的 Oracle 12c 数据库执行完全相同的 SQL 时,某些 XML 数据似乎丢失了(大约 5000 个字符)。
我已经与 DBA 讨论过这个问题,他认为这是客户问题而不是数据库问题,因为他说没有针对数据库的设置会导致这种情况。
有人对我如何解决这个问题有任何建议吗?
【问题讨论】:
-
12c 数据库中可能有不完整的数据。检查两个数据库是否在表
xml_nodes_ams_in中包含相同的数据计数 -
两个数据库包含相同的数据。当我使用 TOAD 过滤功能手动提取数据时,XML 格式良好且完整。
-
最终的 CLOB 是否被截断,或者 XML 中是否缺少数据?显示了多少数据? Toad 中是否有类似于 SQL*Plus
set long的设置来确定显示多少 CLOB - 如果您使用同一个客户端访问两个数据库,可能在连接级别? -
您在运行 12C 客户端软件吗?
-
@AlexPoole - XML 中缺少 XML(未截断)。此外,显示了大部分数据,它只是缺少 XML 的一小部分。我试图查看 TOAD 中的设置,但它是一个相当旧的版本并且不支持 12c 客户端软件,因此这可能是导致问题的原因。我目前使用 10g 客户端连接到 11g 和 12c 数据库。我正在使用 12c 客户端下载新的 SQL 开发人员,并报告我的发现。
标签: oracle oracle11g oracle12c dbms-xmlgen