在存储过程中用游标返回结果集,比如:
CREATE PROCEDURE test1()
DYNAMIC RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE cursor1 CURSOR WITH HOLD WITH RETURN TO CALLER FOR
select * from linktest;
open cursor1;
END @
但执行“call 存储过程”,最终返回的是状态0
我在sqlserver2008中建了链接服务器,
执行select * from openquery(linkdb2test1,'select * from linktest')成功!
但执行select * from openquery(linkdb2test1,'call db2admin.test1')失败!提示:无法处理对象 "call db2admin.test1"。链接服务器 "linkdb2test1" 的 OLE DB 访问接口 "DB2OLEDB" 指示该对象没有列,或当前用户没有访问该对象的权限。
------解决方案--------------------------------------------------------
call db2admin.test1 这个不需要加()的吗?
你的test1的sp,是db2amdin用户下创建的吗?你创建的链接是db2admin这个用户吗?
------解决方案--------------------------------------------------------
call db2admin.test1()