CREATE OR REPLACE PROCEDURE AuthenCustInfo
(
  RESULT       OUT         PLS_VARCHAR2(1),         --返回结果(0 失败,1 成功)  CUST_CODE    OUT         PLS_VARCHAR2(20),      --输出客户代码
  AUTHEN_TYPE  IN          PLS_INTEGER,        
  AUTHEN_CODE  IN          PLS_VARCHAR2(20)        
)ActiveCount PLS_INTEGER;
AC_TMP PLS_VARCHAR2(20);
BEGIN
  ActiveCount:=0;
  AC_RESULT:='0';
  AC_CUST_CODE:='';  IF AN_AUTHEN_TYPE=1 THEN                --验证客户代码
    SELECT COUNT(1) INTO ActiveCount
    FROM MS_CUST_PWD_INFO
    WHERE SRC_CUST_CODE=AC_AUTHEN_CODE;    IF ActiveCount<>0  THEN
      AC_RESULT:='1';
      AC_CUST_CODE:=AC_AUTHEN_CODE;    END IF;  ELSE AN_AUTHEN_TYPE=2 THEN              
    SELECT SRC_CUST_CODE INTO AC_TMP
    FROM EA_MARKRT.MS_FUND_PWD_INFO
    WHERE FUND_ACC=AC_AUTHEN_CODE;
    IF COALESCE(AC_TMP,'')<>'' THEN
      AC_RESULT:='1';
      AC_CUST_CODE:=AC_TMP;
    END IF;  END IF;
END;
报错,都是参数错误,大侠看看。

解决方案 »

  1.   

    CREATE OR REPLACE PROCEDURE AuthenCustInfo 

      RESULT      OUT        PLS_VARCHAR2(1),        --返回结果(0 失败,1 成功) 
      CUST_CODE    OUT        PLS_VARCHAR2(20),      --输出客户代码 
      AUTHEN_TYPE  IN          PLS_INTEGER,        
      AUTHEN_CODE  IN          PLS_VARCHAR2(20)        

    IS 
      

  2.   

    show errors看一下呀。create成功,后会有结果告诉你编译是否有问题的。
      

  3.   

    Oracle 存储过程入参只需明确类型,不用指定长度