Связь ODBC с Oracle на SQL Server - неверный идентификатор при использовании предложения WHERE
Мне нужно запросить данные с SQL Server в Oracle, используя ссылку на базу данных ODBC. Я создал необходимую конфигурацию в Oracle, чтобы позволить мне обращаться к базе данных SQL Server и запрашивать данные.
Когда я делаю:
select * from table@ODBC_LINK
я вернул все строки
Когда я делаю:
select * from table@ODBC_LINK WHERE [Field] = 'Some Value'
Я получаю
Ошибка ORA-000904; Недопустимый идентификатор поля
Имя поля является допустимым полем в базе данных / таблице источника SQL, но не имеет значения, что я делаю, я не могу использовать предложение WHERE, поскольку это всегда дает мне ту же ошибку ORA.
Использование Oracle XE 11g и SQL Server 2012.
Что вызывает мою проблему?
1 ответ
Ваш запрос выполняется в Oracle, а не в SQL Server. Таблица происходит от SQL Server, но не от парсера.
Итак, сначала попробуйте не экранировать символы:
select * from table@ODBC_LINK WHERE Field = 'Some Value'
Если вам нужно экранировать имя, используйте escape-символ Oracle:
select * from table@ODBC_LINK WHERE "Field" = 'Some Value'