Как запрашивать таблицы и извлекать данные в приложение Oracle APEX из другой схемы? - PullRequest
0 голосов
/ 04 марта 2020

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

Приложения размещены в том же рабочем пространстве APEX и в том же экземпляре Oracle 11g. В нашем приложении есть таблицы, которые структурно совпадают с таблицами, которые мы пытаемся запросить в другой схеме.

Использование префикса схемы (SELECT * FROM "SCHEMA2" .TABLE1;), когда запрос вызывает ошибку что таблицы не существуют (ORA-00942: таблица или представление не существует)

Второе, что я попробовал, - это создание ссылки на базу данных между двумя схемами, но при попытке установить sh соединение I получаю следующую ошибку: ORA-01031: недостаточно привилегий

Может ли кто-нибудь определить, где я ошибаюсь / помочь мне выяснить, как запросить другую схему?

1 Ответ

0 голосов
/ 04 марта 2020

Ссылка на базу данных используется, когда задействованы разные базы данных; ваши схемы находятся в той же базе данных, что означает, что первая попытка была правильной: добавление имени таблицы к ее владельцу, например,

SELECT * FROM SCHEMA2.TABLE1

Однако first подключается как schema2 пользователь и выдает

grant select on table1 to schema1;

В противном случае schema1 не может see таблица. Если schema1 должен сделать что-то еще с этой таблицей, вам придется предоставить дополнительные привилегии, такие как insert, update, delete, ....

...