怎么利用dblink调用远端DB的存储过程
1个回答
展开全部
如果参数p_fetiontaskgroup只有一个元素,那么用下面的方法容易解决。
在远程库上,创建一个新的过程:
create procedure WRAP_submitFetiontask(TASK_ID NUMBER,
MOBILE VARCHAR2,
FETIONNO VARCHAR2,
CONTENT VARCHAR2,
USERID NUMBER,
USER_INTERFACE_ID VARCHAR2,
PRODUCT_ID VARCHAR2
) is
v_taskInfo tyfetionTg
begin
初始化v_taskInfo;
v_taskInfo(1).TASK_ID := TASK_ID;
v_taskInfo(1).MOBILE := MOBILE ;
.....
submitFetiontask(v_taskInfo);
END;
本地调用时, 调用 WRAP_submitFetiontask@imdb(.....) 就是了。
多个元素时,比较麻烦,
一个方法是远程建立另一个过程,用于构造TABLE
本地每次调用该过程把一个元素传过去。
另一个方法是不通过collection来传递,而是通过物理表来传递。
在远程库上,创建一个新的过程:
create procedure WRAP_submitFetiontask(TASK_ID NUMBER,
MOBILE VARCHAR2,
FETIONNO VARCHAR2,
CONTENT VARCHAR2,
USERID NUMBER,
USER_INTERFACE_ID VARCHAR2,
PRODUCT_ID VARCHAR2
) is
v_taskInfo tyfetionTg
begin
初始化v_taskInfo;
v_taskInfo(1).TASK_ID := TASK_ID;
v_taskInfo(1).MOBILE := MOBILE ;
.....
submitFetiontask(v_taskInfo);
END;
本地调用时, 调用 WRAP_submitFetiontask@imdb(.....) 就是了。
多个元素时,比较麻烦,
一个方法是远程建立另一个过程,用于构造TABLE
本地每次调用该过程把一个元素传过去。
另一个方法是不通过collection来传递,而是通过物理表来传递。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询