【问题标题】:Not getting SQL values from Linked Server (Oracle Database)未从链接服务器(Oracle 数据库)获取 SQL 值
【发布时间】:2020-07-16 09:37:57
【问题描述】:

我有一个链接到 Microsoft SQL Server 的 Oracle 数据库,因此我可以直接从 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' 附近的语法不正确。

请问我缺少什么?

【问题讨论】:

    标签: sql sql-server oracle record linked-server


    【解决方案1】:
    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"" ')
    

    【讨论】:

    • 告诉我标识符无效
    • 感谢我现在让它工作,而不是''我继续让它加倍“”在这一点上看起来一切都很好。再次感谢
    • 确切消息,完整消息?查询是否直接在远程数据库中工作?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2011-06-29
    • 2016-12-14
    • 2010-11-19
    • 1970-01-01
    • 2021-02-25
    相关资源
    最近更新 更多