SQL Developer не отображает XML

Oracle SQL Developer не отображает содержимое столбцов XML при использовании типа данных XMLType. Первые строки отображаются нормально (если установлен флажок «Настройки»> «База данных»> «Дополнительно»> «Отображать значение XML в сетке»), но после двойного щелчка по маленькому желтому карандашу окно «Просмотр значения» остается пустым. Любопытно, что это работает, если вы храните XML в файле clob.

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

значение пустого представления в Oracle 18.1

После долгого поиска в Интернете я нашел сообщение, написанное этим ДжеффСмитом, в котором говорится, что это известная ошибка, которая скоро будет исправлена. И да, он снова работает, начиная с версии 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, поэтому невозможно узнать, когда эта ошибка была исправлена.


person wolφi    schedule 15.05.2020    source источник
comment
19.2.1 или 19.4 ... хотя получим 19.4   -  person thatjeffsmith    schedule 15.05.2020
comment
Вы правы, исправили версии. Не удается заставить 19.4 работать на macOS Catalina (10.15.2), так как он не сохраняет соединения. У меня нет большого опыта задавать вопросы о stackoverflow, стоит ли мне открывать для этого отдельный вопрос?   -  person wolφi    schedule 15.05.2020
comment
Обновите свой JDK, для шифрования pwd требуются jce-файлы, которых нет в старых версиях JDK 8. Jdk8u200 +   -  person thatjeffsmith    schedule 16.05.2020
comment
@thatjeffsmith Спасибо за подсказку! Мне придется немного подождать, поскольку Oracle говорит, что мы не можем сертифицировать любую версию JDK на macOS 10.15.   -  person wolφi    schedule 16.05.2020
comment
Подтверждаю ... Ненавижу это слово. Мы используем его внутри моей команды без проблем, если это чего-то стоит. Вы также можете сами добавить jce-файлы oracle.com/java/technologies/ javase-jce8-downloads.html   -  person thatjeffsmith    schedule 16.05.2020
comment
@thatjeffsmith Я, безусловно, разделяю ваши чувства по поводу сертификации. Меня просто оттолкнуло это предупреждение, потому что я потратил день или около того, чтобы запустить мгновенный клиент под Catalina.   -  person wolφi    schedule 16.05.2020


Ответы (1)


Правильным решением является обновление до версии 19 (или теоретически откат до 17).

Если вы застряли в версии 18, есть обходной путь:

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

По какой-то странной причине псевдоним таблицы требуется.

person wolφi    schedule 18.05.2020
comment
Большое спасибо. Эта проблема долго раздражала - person Salman; 11.02.2021