从sql server 到Oracle使用openquery带参数查询

来源:互联网 发布:女子防身知乎 编辑:程序博客网 时间:2024/06/04 23:47

     这两天一直在做财务报表的整理、导出,其中大量用到了数据库中计算,又因为集团与子公司用到的数据库不是一个数据库,所以就用到了openquery跨库查询

     因为财务报表计算比较复杂,所以这里就举一个简单地例子说明openquery使用:

    openquery函数不能传递参数,

    一种方法是将带参数的where限定条件放到openquery函数的外面,如 

    select * from OPENQUERY (linked_server, 'SELECT id FROM msgs') WHERE id=@id),但问题是如果数据量大的话,限定条件放在函数里面执行的效率更高,放在外面加重    了链接服务器的负担,等待返回结果的时间更长了,没有达到我想加快查询速度的问题。

    一种方法是将openquery语句放到一个字符串里面,但是这时候就要格外注意引号的问题,如 

DECLARE @Sql VARCHAR(1000)set @sqlstr = 'select * from  openquery(ikangmis,select * from table where id='''+@id+''')';exec ( @sqlstr );EXEC(@Sql)
   

1 0
原创粉丝点击