ppas:array value must start with "{" or dimension information

阿__龙 2018-11-01 04:42:32
客户最近把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;
...全文
181 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

952

社区成员

发帖
与我相关
我的任务
社区描述
PostgreSQL相关内容讨论
sql数据库数据库架构 技术论坛(原bbs)
社区管理员
  • PostgreSQL社区
  • yang_z_1
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧