关闭

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

2293人阅读 评论(0) 收藏 举报
分类:

     这两天一直在做财务报表的整理、导出,其中大量用到了数据库中计算,又因为集团与子公司用到的数据库不是一个数据库,所以就用到了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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:40144次
    • 积分:871
    • 等级:
    • 排名:千里之外
    • 原创:42篇
    • 转载:35篇
    • 译文:0篇
    • 评论:3条
    最新评论