Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не удается получить данные по ДБ-Линк, в чем причина? / 3 сообщений из 3, страница 1 из 1
27.04.2018, 08:37
    #39637120
Ivanco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается получить данные по ДБ-Линк, в чем причина?
Доброго времени суток.
Ситуация следующая.

Имеется 2 БД:
Локальная БД

Удаленная БД, работающая в режиме только чтение (STANDBY)

Работаю на локальной БД.

Пытаюсь забрать данные на Локальную БД из Удаленной БД, в SQL , все проходит успешно:
Код: plsql
1.
INSERT INTO DEV.REPORT (SELECT * FROM SC.REPORT@REMOTE WHERE id > 100);



Если же я делаю то же самое в PL/SQL , то получаю ошибку:
Код: plsql
1.
2.
3.
BEGIN
  INSERT INTO DEV.REPORT (SELECT * FROM SC.REPORT@REMOTE WHERE id > 100);
END;

Код: plsql
1.
2.
3.
4.
ORA-06550: line 2, column 71:
PL/SQL: ORA-04063: table "SC.REPORT" has errors
ORA-06550: line 2, column 3:
PL/SQL: SQL Statement ignored



Таблица REPORT на Локальной и Удаленной БД имеет одинаковую структуру.

В чем причина такой ошибки?
Может это возникать из-за того, что в 2-х используемых БД таблица и индексы имеют одинаковые наименования?
...
Рейтинг: 0 / 0
28.04.2018, 05:45
    #39637801
Ivanco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается получить данные по ДБ-Линк, в чем причина?
Дополню.
Когда внутри этого PL/SQL блока заворачиваю команду в динамический SQL, все отрабатывает:
Код: plsql
1.
2.
3.
BEGIN
  EXECUTE IMMEDIATE 'INSERT INTO DEV.REPORT (SELECT * FROM SC.REPORT@REMOTE WHERE id > 100)';
END;



С чем связано такое поведение и как это вылечить?

Возможно это ограничения взаимодействия с Удаленной БД, открытой только на чтение?
Или может быть это связано с тем что на Локальной БД стоит ORACLE 11, а на Удаленной - ORACLE 12?

Отмечу, что такая ошибка возникает как-то избирательно. К некоторым таблицам при таком же формате обращения доступ осуществляется без ошибок.
...
Рейтинг: 0 / 0
28.04.2018, 09:59
    #39637884
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не удается получить данные по ДБ-Линк, в чем причина?
Звездочка - это т.н. синтаксический сахар.
Она раскрывается в полный перечень полей в момент компиляции.
И ddl вашей таблицы содержит нечто, не перевариваемое pl/sql машиной.
Проверьте имена полей таблицы на предмет присутствия в v$reserved_words.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Не удается получить данные по ДБ-Линк, в чем причина? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]