Oracle到SQL Server ODBC链接 - 使用WHERE子句时的标识符无效

时间:2018-06-06 09:59:38

标签: sql sql-server oracle oracle11g database-link

我需要使用ODBC数据库链接从Oracle中的SQL Server查询数据。 我在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 个答案:

答案 0 :(得分:0)

您的查询正在 Oracle 而非 SQL Server 中运行。该表来自SQL Server,但不是解析器。

所以,首先尝试不转义字符:

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

如果您需要转义名称,请使用 Oracle 转义字符:

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