SQL开发工具无法显示XML

5

当数据类型是XMLType时,Oracle的SQL Developer不能显示XML列的内容。如果启用了“首选项>数据库>高级>在网格中显示XML值”的选项,则前几行可以正常显示,但是一旦您双击小黄笔,"查看值"窗口将保持为空白。有趣的是,如果您将XML存储在clob中,它会起作用。

CREATE TABLE t (x XMLTYPE, c CLOB);
INSERT INTO t VALUES (XMLTYPE('<x/>'), '<x/>');
COMMIT;
SELECT * FROM t;

Oracle 18.1中的空视图值

在网上搜索了很久后,我发现那位名为thatJeffSmith的用户发布了一篇帖子指出这是一个已知的Bug,不过很快就会修复。是的,从19.1版本开始又可以正常工作了。但是,在工作中我们还会暂时使用版本18.2。那么,在18版本中有什么解决方法吗?

Version    XML View Value
17.3.0.271 ok
17.4.0.355 ok
18.1.0.095 empty
18.2.0.183 empty
19.1.0.094 ok
19.2.1.247 ok
19.4.0.354 ok (but needs modern JDK)

以下是19.1的效果:

19.1中查看值是正常的

其次,我找不到关于SQL Developer的错误列表、修复的错误列表或旧版本的发布说明。目前,Oracle的下载页面仅列出最新的三个版本:19.1、19.2和19.4,因此无法确定何时修复了该错误。


19.2.1或19.4...获取19.4 - thatjeffsmith
你说得对,已经更正版本号了。19.4在macOS Catalina(10.15.2)上无法工作,因为它不会存储连接。我没有太多在stackoverflow上提问的经验,我应该单独开一个问题吗? - wolφi
2
请更新您的JDK,pwd加密需要jce jars,旧版JDK 8中找不到... jdk8u200+ - thatjeffsmith
@thatjeffsmith 感谢你的提示!我需要等一下,因为Oracle “我们还不能在macOS 10.15上认证任何JDK版本”。 - wolφi
认证...我讨厌这个词。如果值得一提的话,我们在我的团队内部使用它而没有任何问题。您也可以自行添加jce jars https://www.oracle.com/java/technologies/javase-jce8-downloads.html - thatjeffsmith
@thatjeffsmith 我完全理解你对认证的感受。但是,我刚刚在Catalina下花了一天左右的时间来运行即时客户端,所以这个警告让我有些失望。 - wolφi
1个回答

2

合适的解决方案是升级到版本19(或在理论上降级到17)。

如果您被困在版本18中,有一个解决方法:

SELECT t.x.getClobVal() FROM t t;

由于某种奇怪的原因,表别名是必需的。


非常感谢。这个问题困扰了我很长时间。 - Salman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接