我需要使用 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。
是什么导致了我的问题?
您的查询是在Oracle而不是SQL Server中运行的。 该表来自 SQL Server,但不是分析器。
因此,首先尝试不要转义字符:
select * from table@ODBC_LINK WHERE Field = 'Some Value'
如果需要对名称进行转义,请使用Oracle转义字符:
select * from table@ODBC_LINK WHERE "Field" = 'Some Value'