我已经成功地将Oracle 11g数据库链接到Server 2008。我可以在Server中运行一个简单的查询,它显示Oracle数据:
SELECT PRODUCT_CODE
FROM [ORACLE-LINK]..ORACLE_SCHEMA.PRODUCTS_TABLE这完全符合我的预期。
当我尝试做一个简单的连接时,问题就出现了:
SELECT ProductName, [ORACLE-LINK]..ORACLE_SCHEMA.PRODUCTS_TABLE.PRODUCT_NAME
FROM SqlServer_table
INNER JOIN [ORACLE-LINK]..ORACLE_SCHEMA.PRODUCTS_TABLE
ON SqlServer_table.Product_ID=[ORACLE-LINK]..ORACLE_SCHEMA.PRODUCTS_TABLE.PRODUCT_CODE这将导致联接语句的Oracle部分上出现“无法绑定多部分标识符”错误。我从研究中了解到语法必须准确,我想我已经尝试过几乎每一个排列。也许在Server设置/注册表中有什么东西..。
发布于 2014-05-29 14:15:21
按照@shiva的有益建议,我用别名重新设置了查询的格式。这引发了服务器排序不匹配错误,这证明比我之前收到的“多部分标识符”消息更有启发性。结果显示,联合列有不同的排序规则(SQL_Latin1_General_CP1_CI_AS和Latin1_General_CI_AS)。将一个简单的排序规则添加到连接的末尾,作为查询的一部分,对此进行了排序。
发布于 2014-05-28 16:46:26
你试过把表名化名吗?就像这样
SELECT SqlSvr.ProductName AS Sql_ProductName
, Orcl.PRODUCT_NAME AS Orcl_ProductName
FROM SqlServer_table AS SqlSvr
INNER JOIN [ORACLE-LINK]..ORACLE_SCHEMA.PRODUCTS_TABLE AS Orcl
ON SqlSvr.Product_ID = Orcl.PRODUCT_CODEhttps://stackoverflow.com/questions/23917069
复制相似问题