hur.cn - 华软网

 热门搜索

调用存储过程(高难度)

  作者:未知    来源:网络    更新时间:2017/12/5
请问怎样在前台调用这样的存储过程
procedure P_TEST
(
 aa_test out ga_test
)
其中ga_test在包中是这样定义的
TYPE ga_test IS TABLE OF 表名%ROWTYPE INDEX BY BINARY_INTEGER;
请问如何拿到aa_test这样的表结构数组?
------华软网友回答------
怎么没人顶啊?
------华软网友回复------
你的存储过程是取表的结构的么?

那当字符串取出来就可以了呀,

把具体代码写出来一下吧
------华软网友回复------
存储过程是这样的     
      procedure P_TEST
      (
      aa_PR_ExpressFreightValue out ga_PR_ExpressFreightValue
      )
      IS
      li  integer;
      la_PR_ExpressFreightValue  ga_PR_ExpressFreightValue;
      cursor cur1 is select distinct efp_code from t_pr_expressfreightvalue;
      BEGIN
      
      li := 0;
      OPEN cur1;
      LOOP
      FETCH cur1 into la_PR_ExpressFreightValue(li).efp_code;
      exit when cur1%notfound;
      li := li + 1;
      END LOOP;
      
      CLOSE cur1;
      END P_TEST;
------华软网友回复------
当在前台调用时,
直接declare proc_1 procedure from 包名.P_TEST()时就报错,说非法的变量
------华软网友回复------
你用的是什么数据库?
------华软网友回复------
用的是orcle
------华软网友回复------
自己顶!
------华软网友回复------
郁闷!
------华软网友回复------
你的传入是实参吧,可类似定义local external functions然后调用

将一个RPC定义为外部函数的语法与定义一般的外部函数类似。其区别的用RPCDUNC代替一般外部函数定义中的LIBRARY,如果你要使用别名,必须使用ALIAS FOR语法。 

语法

FUNCTION  rtndatatype  functionname ( { REF } 
    { datatype1 arg1, ..., datatypen argn } )
    RPCFUNC {ALIAS FOR spname}

如果一个函数没有返回值(例如,它返回Void),外部函数定义的语法是:

SUBROUTINE  rtndatatype   functionname  ({REF}
    { datatype1 arg1 , ..., datatypen argn })
    RPCFUNC {ALIAS FOR spname}
------华软网友回复------
调用

然后在PB里调用,sqlca.wl_tbconsignforms_squence ('xxxxx',ref ll_output )
messagebox("",string(ll_output))      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。