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

oracle存储过程调用函数 ?
函数:

function CreateDiagClaimForOnePerson
  (
    P_YEAR           number, --生成年度
    P_CERTIFICATENUM varchar2, --身份证号(18位)
    P_CREATORID      varchar2, --操作员ID
    P_CREATORNAME    varchar2, --操作员姓名
    P_UNIQUEID       varchar2, --理赔单唯一编号
    P_OTHERPAY       number, --扣除的其他报销金额(仅在超封顶线时用)
    P_CREATETYPE     number, --1自动批量生成,2手动单个生成
    P_ErrMsg         out varchar2 --返回错误信息描述
  ) return number as

我新增一个存储过程,调用上面的函数,把函数的返回值 作为存储过程的输出函数 ,供程序调用
,怎么写 ??

------解决方案--------------------
引用:
SQL code?1234567891011121314151617181920212223242526--手动生成个人门诊理赔单create or replace procedure UT_CreateClaimForPerson (  P_YEAR           number, --生成年度    P_CERTIFICATENUM varchar2, --身份证……


报的什么错误?
------解决方案--------------------
打开PL/SQL选择存储过程,点“编辑”应该会提示相关的错误信息的
------解决方案--------------------
一、函数和过程是否在同一个包下:
   1.在,直接调用;
   2.不在,但在包里:包名.函数名;
二、函数是公共的,直接调用;

  
------解决方案--------------------
另外,想看错误信息,把执行窗口改为命令行模式,执行后,show errors。
就可以看到了
------解决方案--------------------
少逗号了,括号位置不对,如下为测试代码:
SQL> 
SQL> create or replace procedure UT_CreateClaimForPerson(     P_YEAR           in number, --生成年度
  2                                P_CERTIFICATENUM in varchar2, --身份证号(18位)