Связь 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'
Другие вопросы по тегам