DBA_MVIEWS: ORA-00932: несовместимые типы данных: ожидаемые - получили ДОЛГО - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу просмотреть столбец «QUERY» таблицы DBA_MVIEWS как простой текст.

Если я выполню следующую инструкцию:

select to_lob(query) from dba_mviews;

У меня ошибка:

ORA-00932: inconsistent datatypes: expected - got LONG

Вместо этого у меня нет ошибок:

select query from dba_mviews;

Но я получаю результат CLOB в DBVisualizer.

Я использую:

  • Oracle Database 12c Enterprise Edition, выпуск 12.1.0.2.0 - 64-разрядная версия
  • Продукт: DbVisualizer Pro 10.0.15 [Build # 2861]
  • ОС: Mac OS X
  • Версия ОС: 10.14.1
  • Арка ОС: x86_64
  • Версия Java: 1.8.0_172

Что происходит?

1 Ответ

0 голосов
/ 03 декабря 2018

Из документации Oracle (выделение добавлено):

TO_LOB преобразует LONG или LONG RAW значения в столбце long_column в LOB значения,Вы можете применить эту функцию только к столбцу LONG или LONG RAW, и только в списке выбора подзапроса в выражении INSERT .

не может использовать его в простом запросе, как вы пытаетесь это сделать.И создание таблицы для вставки строк запроса, вероятно, не очень полезно или практично для вас.

Обработка значений long обычно немного трудна.Вы можете преобразовать их в CLOB в блоке PL / SQL, например:

declare
  l_long long;
  l_clob clob;
begin
  select query into l_long from dba_mviews;
  l_clob := to_clob(l_long);
  -- do something with l_clob
end;
/

... но это также, вероятно, не очень полезно, даже если вы создаете функцию, которая возвращает конвейерный CLOB.

Документы DBVisualizer говорят:

Из-за характера двоичных данных / данных BLOB и CLOB ячейки этих типов могут быть полностью изменены и просмотрены только вклеточный редактор.(В редакторе форм имеется частичная поддержка для просмотра данных изображения и загрузки из файла).

В сетке данные Binary / BLOB и CLOB по умолчанию представлены значком и размером значения.Вы можете выбрать другой формат представления в диалоговом окне «Свойства инструмента» в категориях «Сетка / Двоичные данные / BLOB и CLOB» на вкладке «Общие».Выбор по значению приводит к снижению производительности, а потребление памяти резко возрастает.

Это не тот инструмент, который я использовал, но звучит так, будто он обрабатывает и отображает значение long так, как если быCLOB уже, так что, надеюсь, это все еще применяется.

...