我在链接服务器(IBM DB2)上运行查询,我这样做的原因是执行一个简单的查询需要花费大量时间。下面是两个查询,第一个查询成功运行,因此问题不在于查询
select top 10 * from [AS400TS_LNK].[TEST].[AUPRDDBF].CONTACCT where actrno = '8971'
select * from openquery(AS400TS_LNK, 'select * from [TEST].[AUPRDDBF].CONTACCT where actrno = ''8971''')
以及我在运行打开查询时遇到的错误
链接服务器"AS400TS_LNK"的 OLE DB 提供程序"DB2OLEDB"返回消息"令牌 *N 无效。有效令牌:*N. SQLSTATE: 42601, SQLCODE: -104"。
Msg 7321,级别 16,状态 2,第 1 行
准备查询"从 [AS400TS_LNK] 中选择 *"时出错。[测试]。[AUPRDDBF]。CONTACCT 其中 actrno = '8971'",用于针对链接服务器"AS400TS_LNK"的 OLE DB 提供程序"DB2OLEDB"执行。
试试这个:
select *
from openquery(AS400TS_LNK, 'select * from TEST.AUPRDDBF.CONTACCT where actrno = ''8971''')
或者,如果失败,请尝试以下操作:
select *
from openquery(AS400TS_LNK, 'select * from TEST.AUPRDDBF.CONTACCT')
where actrno = '8971'