Запрос SQL Server от Oracle — принудительное обновление метаданных

Я разработчик SQL Server с задачей в Oracle. DBA установил DBLink в Oracle, который указывает на базу данных SQL Server. Я пишу представление данных SQL Server, а затем представление на стороне Oracle, чтобы объединить его с дополнительными данными Oracle.

Проблема: если я изменю определение представления на SQL Server, даже ошибки «Выбрать * From myview@dblink» с «Недопустимым столбцом». Закрытие TOAD и повторное открытие, похоже, устраняют проблему, но реальный вопрос заключается в том, как заставить Oracle перечитать метаданные без сброса соединения?


person Bill    schedule 16.05.2009    source источник


Ответы (4)


Это похоже на проблему с TOAD, а не с оракулом. Что произойдет, если вы сделаете это в SQL*Plus?

person Matthew Watson    schedule 17.05.2009
comment
То же самое происходит и в SQL*Plus. Если я выхожу и снова захожу, все работает нормально. Должны кэшироваться метаданные объекта соединения. В следующем тесте я запросил представление в TOAD, изменил его, снова запросил. Это не удалось. Затем я открыл второе соединение. Запрос прошел нормально. Должен быть на объекте подключения. - person Bill; 19.05.2009
comment
что произойдет, если вы сделаете фиксацию/откат в своем сеансе? - person Matthew Watson; 19.05.2009
comment
Неа. Не что иное, как уничтожение соединения, вызывает обновление метаданных. Должно быть что-то в конфигурации клиента Oracle, которая контролируется нашим операционным персоналом. Я буду обсуждать с ними. Спасибо Мэтью и tuinstoel за помощь. - person Bill; 19.05.2009

Я не знаю, понимаю ли я вас, но если у вас есть dblink, который указывает на базу данных SQL-сервера в вашей базе данных Oracle, и вам нужны данные на сервере SQL, просто выполните:

SELECT *
FROM TABLE@dblink

SELECT "COL", "COL2", "COL3
from TABLE@dblink


SELECT T."COL", H."COL"
FROM TABLE1@dblink T, TABLE2@dblink H
WHERE T."ID" = H."ID"
person N385    schedule 02.09.2011

Может быть, вы можете сделать?:

alter view <<view_name>> compile; 

Я не проверял это, потому что у меня нет ссылки на БД от Oracle до MSSQL.

person tuinstoel    schedule 16.05.2009
comment
В понедельник первым делом попробую. - person Bill; 17.05.2009

Кажется, это проблема с клиентом Oracle 10g. Текущее решение состоит в том, чтобы отключиться и снова подключиться. Учитывая, что мне не удалось найти кого-либо еще с этой проблемой, я предполагаю, что это проблема с конфигурацией моего клиента.

person Bill    schedule 21.05.2009