首页 > 解决方案 > 未从链接服务器(Oracle 数据库)获取 SQL 值

问题描述

我有一个 Oracle 数据库,它链接到 Microsoft SQL Server,因此我可以直接从 SQL Server Management Studio 查询服务器和数据库中的假脱机信息,而无需担心。现在我想传递一个 SQL 查询来从链接服务器获取信息并显示数据库中的值。

所以当我这样做时

select * from openquery(LinkServerName,'select * from table_name')

这100%有效,没有错误。

现在当我运行这样的东西时

select * from openquery(LinkServerName,'select foracid,acct_name,acct_crncy_code,clr_bal_amt from table_name where bacid='1010000001' and sol_id='XXX'')

其中 bacid 和 sol_id 都是作为列的字符串,我得到这个返回错误:

消息 102,级别 15,状态 1,第 5 行
“1010000001”附近的语法不正确。

请问我似乎缺少什么?

标签: sqlsql-serveroraclerecordlinked-server

解决方案


select *
from openquery(LinkServerName,'select foracid,acct_name,acct_crncy_code,clr_bal_amt from table_name where bacid=''1010000001'' and sol_id=''XXX'' ')

应该工作,'需要被''(两个')转义。

基于评论的更正(在这种情况下转义有点奇怪):

select *
from openquery(LinkServerName,'select 
foracid,acct_name,acct_crncy_code,clr_bal_amt from table_name where 
bacid=""1010000001"" and sol_id=""XXX"" ')

推荐阅读