Новый столбец (типа BLOB
) добавлен в таблицу удаленной базы данных. Приложение, которое я поддерживаю, читает эту таблицу через представление, которое является простым оператором выбора по ссылке на базу данных. Мне нужно обновить представление, чтобы у меня был доступ к новому столбцу.
По-видимому, вы не можете прочитать столбец больших объектов по ссылке в базе данных:
ORA-22992: невозможно использовать локаторы больших объектов, выбранные из удаленных таблиц
Пока мне просто нужно знать, есть ли в строках данные. Этот запрос работает безупречно:
select foo_id, foo_name, foo_date,
case
when foo_binary is not null then 1
else 0
end as has_foo_binary_data
from remote_table@remote_database;
Тем не менее, я не могу создать представление, пока не удалю выражение регистра:
create view remote_foo as
select foo_id, foo_name, foo_date,
case
when foo_binary is not null then 1
else 0
end as has_foo_binary_data
from remote_table@remote_database;
RA-22992: невозможно использовать выбранные локаторы больших объектов из удаленных таблиц
DBMS_LOB.GETLENGTH(foo_binary)
запускает симпатичную ловушку-22:
ORA-02069: для параметра global_names должно быть установлено значение TRUE для этой операции
alter session set global_names = true`;
create view ...
ORA-02085: ссылка на базу данных remote_database подключается к remote_sid
Причина: ссылка на базу данных, подключенная к базе данных с другим именем. Соединение отклонено.
Действие: создайте ссылку на базу данных с тем же именем, что и база данных, к которой она подключается, или задайте global_names = false.
Не уверен, что я нажал стена или я просто делаю глупые ошибки. Есть ли способ получить любую информацию о CLOB (не о данных BLOB), которая работает в представлении?