日期:2014-05-17  浏览次数:20579 次

带参表值函数出错。
我有一个函数
f_getlie3(@riqi date)
这个里面用到了注册的远程服务器、
exec sp_addlinkedserver 'kqdb','','SQLOLEDB','sun-open' 

调用select * from f_getlie3('2012-11-08') 结果正常。

但是
declare @riqi date
set @riqi='2012-11-08'
select * from f_getlie3(@riqi)
显示错误结果:

链接服务器"kqdb"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "未指定的错误"。
链接服务器"kqdb"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "比例无效。"。
消息 7322,级别 16,状态 2,第 3 行
向链接服务器 "kqdb" 的 OLE DB 访问接口 "SQLNCLI10" 提供参数信息时失败。
警告: 聚合或其他 SET 操作消除了 Null 值。

请问是什么原因?

------解决方案--------------------
每次调用连接服务,关闭一次,再打开。
------解决方案--------------------
加个try..catch,在catch里执行远程连接服务,注意用完就关闭连接,节省资源