Связь ODBC с Oracle на SQL Server - неверный идентификатор при использовании предложения WHERE - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно запросить данные с SQL Server в Oracle, используя ссылку на базу данных ODBC.Я создал необходимую конфигурацию в Oracle, чтобы позволить мне обращаться к базе данных SQL Server и запрашивать данные.

Когда я делаю:

select * from table@ODBC_LINK

, я получаю все возвращенные строки.

Когда я делаю:

select * from table@ODBC_LINK WHERE [Field] = 'Some Value'

я получаю

ORA-000904 ошибку;Недопустимый идентификатор «Field».

Имя поля является допустимым полем в базе данных / таблице источника SQL, но не имеет значения, что я делаю, я не могу использовать предложение WHERE, так как это всегдавыдает мне ту же ошибку ORA.

Использование Oracle XE 11g и SQL Server 2012.

В чем причина моей проблемы?

1 Ответ

0 голосов
/ 06 июня 2018

Ваш запрос выполняется в Oracle , а не SQL Server .Таблица взята из SQL Server, но не из синтаксического анализатора.

Итак, сначала попробуйте не использовать escape-символы:

select * from table@ODBC_LINK WHERE Field = 'Some Value'

Если вам нужно экранировать имя, используйте Oracle экранирующий символ:

select * from table@ODBC_LINK WHERE "Field" = 'Some Value'
...