客戶最近把oracle遷移到ppas,折騰了一個月總算可以用了;但是還有一函式一直未能解決,百度查了很久,都沒能很好的解決。求大神幫忙
Oracle資料庫遷移ppas,rncontinueratecalm函式在oracle中可以順利執行,在ppas中執行報錯。
Ppas中函式運行報錯資訊:Procedure execution failed
ERROR: array value must start with "{" or dimension information
CONTEXT: edb-spl function rncontinueratecalm(character varying,character varying,character varying,character varying,character varying,integer,timestamp without time zone,timestamp without time zone,timestamp without time zone,timestamp without time zone,character varying,character varying) while casting return value to function's return type
函式回傳值為一個自定義型別rncontinuerateresult,自定義型別創建陳述句:
CREATE OR REPLACE TYPE RNCONTINUERATE As Object
(
GroupColumn Varchar2(60),
SumSignPrem Number(18, 2),
SumRnPrem Number(18, 2),
SumSignCount integer,
SumRnCount integer,
ContinueRate Number(18, 4)
)
CREATE OR REPLACE TYPE rncontinuerateresult is table of RNCONTINUERATE;
函式開頭定義回傳值型別:
m_Data rncontinuerate := rncontinuerate(null,
null,
null,
null,
null,
null);
函式結尾為回傳值復制如下:
v_Rc :游標
Open v_Rc For
select a.GroupColumn,
Sum(nvl(a.signprem, 0) * a.sharerate),
Sum(nvl(a.rnprem, 0) * a.sharerate),
count(distinct innercontno),
count(distinct actugetno),
decode(Sum(nvl(a.signprem, 0) * a.sharerate),
0,
0.8,
round(Sum(nvl(a.rnprem, 0) * a.sharerate) /
Sum(nvl(a.signprem, 0) * a.sharerate),
4))
from Faagentconttmp a
where a.GroupColumn is not null
group by a.GroupColumn;
end if;
end if;
Loop
Fetch v_Rc
Into m_Data.GroupColumn, m_Data.SumSignPrem, m_Data.SumRnPrem, m_Data.SumSignCount, m_Data.SumRnCount, m_Data.ContinueRate;
Exit When v_Rc%Notfound;
End Loop;
Close v_Rc;
Return m_Data;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/79534.html
標籤:PostgreSQL
上一篇:資料庫邏輯問題求dalao幫助
