用户定义的聚合函数使用ORA-22813

时间:2014-08-28 09:06:41

标签: oracle aggregate-functions

执行以下脚本时

SELECT aggr_func(bki_aggr_input(t.app_date,
                                    t.amount,
                                    t.rate, 
                                    t.term, 
                                    t.OPEN_DATE,
                                    t.STATUS_ID,
                                    t.INF_CONFIRM_DATE,
                                    t.FACT_CLOSE_DATE,
                                    t.PMT_STRING_84M,
                                    t.flag_is_own_contract,
                                    t.OUTSTANDING,
                                    t.CREDIT_LIMIT,
                                    t.TYPE_ID,
                                    t.FINAL_PMT_DATE)) p
  FROM temp_tab t 

其中aggr_func是用户定义的聚合函数 我收到了ORA-22813错误

功能是

CREATE OR REPLACE FUNCTION BKI_AGGR_CALC(input_var IN BKI_AGGR_INPUT)
  RETURN BKI_AGGR_OUTPUT
  PARALLEL_ENABLE
  AGGREGATE USING BKI_AGGR_ROUTINES;

,类型BKI_AGGR_ROUTINES的规范是

CREATE OR REPLACE TYPE BKI_AGGR_ROUTINES AS OBJECT
(
  acc_opn_vs_problem NUMBER,
  pat_opened_12      NUMBER,
  pat_del1p_3        NUMBER,
  max_hist_own NUMBER,
  cntOpenAccounts NUMBER,
  cntAllAccounts NUMBER, 
  ratio_open NUMBER,
  patternsArray NUMBER_TWO_DIMENSIONAL_TAB, 
  unionPattern NUMBER_TAB,
  m_nodelinq NUMBER,
  outstanding_to_credit_limit NUMBER,
  sumOutstanding NUMBER,
  sumCreditLimit NUMBER,
  paymentPatArray NUMBER_TWO_DIMENSIONAL_TAB,
  unionPaymentPat NUMBER_TAB,
  sumMonthPayOpn NUMBER, 
  load_to_avgpaym_24 NUMBER,
  reqMonthPay NUMBER, 
  sumOpenStartInCrisis NUMBER, 
  sumAllCredits NUMBER, 
  ratio_crs_not_sum NUMBER,
  ratio_m_up NUMBER,
  cnt NUMBER,
  STATIC FUNCTION ODCIAggregateInitialize(actx IN OUT BKI_AGGR_ROUTINES)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAggregateIterate(SELF     IN OUT BKI_AGGR_ROUTINES,
                                       inputVar IN BKI_AGGR_INPUT)
    RETURN NUMBER,
  MEMBER FUNCTION ODCIAggregateMerge(SELF IN OUT BKI_AGGR_ROUTINES,
                                     ctx2 IN BKI_AGGR_ROUTINES)
    RETURN NUMBER,

  MEMBER FUNCTION ODCIAggregateTerminate(SELF      IN OUT BKI_AGGR_ROUTINES,
                                         returnVar OUT BKI_AGGR_OUTPUT,
                                         flags     IN NUMBER) RETURN NUMBER
)

可能导致错误的原因是什么?我该如何调查并修复它? 谢谢。

0 个答案:

没有答案