未从链接服务器(Oracle 数据库)获取 SQL 值
Not getting SQL values from Linked Server (Oracle Database)
我有一个 Oracle 数据库,它链接到 Microsoft SQL 服务器,因此我可以直接从 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 都是字符串作为列,我得到这个 return 错误:
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near '1010000001'.
请问我好像遗漏了什么?
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"" ')
我有一个 Oracle 数据库,它链接到 Microsoft SQL 服务器,因此我可以直接从 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 都是字符串作为列,我得到这个 return 错误:
Msg 102, Level 15, State 1, Line 5
Incorrect syntax near '1010000001'.
请问我好像遗漏了什么?
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"" ')