Как решить ORA-22992: нельзя использовать локаторы больших объектов, выбранные из удаленных таблиц? - PullRequest
0 голосов
/ 14 июля 2020

Я создал ссылку на БД и создал локальный синоним удаленной таблицы. Я также создал локальное представление, которое выбирает данные из синонима. Столбец blob был добавлен в удаленную таблицу, и я не могу выбрать его локально.

Вот как выглядит мой код:

CREATE OR REPLACE VIEW LOCAL_USER.VIEW AS (

SELECT
WHATEVER,
BINARY_CONTENT
FROM LOCAL_USER.LOCAL_TABLE

UNION  ALL 

SELECT
WHATEVER,
BINARY_CONTENT
FROM  LOCAL_USER.SYNONYM
);

и это ошибка:

ORA-22992: cannot use LOB locators selected from remote tables

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

Кто-нибудь знает, что с этим можно сделать?

1 Ответ

1 голос
/ 14 июля 2020

Согласно Документация , такое использование LOB не поддерживается.

Oracle База данных имеет ограниченную поддержку удаленных LOB, и при удаленных LOB могут возникать ошибки ORA-22992. используются неподдерживаемыми способами.

И создание представлений с удаленными большими объектами не входит в список поддерживаемых операций, как указано в документации выше.

В Oracle поддержка I нашел документ 796282.1 для более старой версии базы данных (12.1) с обходным путем, но этот обходной путь кажется очень ограниченным, поскольку он состоит из преобразования CLOB / BLOB в VARCHAR2 / RAW через функцию поддержки и последующего доступа к нему удаленно. Это, конечно же, добавляет ограничения для VARCHAR2 на 4000 байтов и для RAW на 2000 байтов, что может быть весьма ограничивающим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...