oracle自定义长度异常,Oracle 自定义wmsys.wm_concat 避免长度限制

Oracle自定义wmsys.wm_concat避免长度限制网上搜索到这段类似代码但是长度过程还是不行,经过我的修改,亲测可以。 CREATEORREPLACETYPEZH_CONCAT_IM

AUTHIDCURRENT_USERASOBJECT

(

CURR_STRCLOB,

STATICFUNCTIONODCIAGGREGATEINITIALIZE(SCTXINOUTZH_CONCAT_IM)RETURNNUMBER,

MEMBERFUNCTIONODCIAGGREGATEITERATE(SELFINOUTZH_CONCAT_IM,

P1INVARCHAR2)RETURNNUMBER,

MEMBERFUNCTIONODCIAGGREGATETERMINATE(SELFINZH_CONCAT_IM,

RETURNVALUEOUTCLOB,

FLAGSINNUMBER)

RETURNNUMBER,

MEMBERFUNCTIONODCIAGGREGATEMERGE(SELFINOUTZH_CONCAT_IM,

SCTX2INZH_CONCAT_IM)RETURNNUMBER

)

GO

CREATEORREPLACETYPEBODYZH_CONCAT_IM

IS

STATICFUNCTIONODCIAGGREGATEINITIALIZE(SCTXINOUTZH_CONCAT_IM)

RETURNNUMBER

IS

BEGIN

SCTX:=ZH_CONCAT_IM(NULL);

RETURNODCICONST.SUCCESS;

END;

MEMBERFUNCTIONODCIAGGREGATEITERATE(SELFINOUTZH_CONCAT_IM,

P1INVARCHAR2)

RETURNNUMBER

IS

BEGIN

IF(CURR_STRISNOTNULL)THEN

CURR_STR:=CURR_STR||','||P1;

ELSE

CURR_STR:=P1;

ENDIF;

RETURNODCICONST.SUCCESS;

END;

MEMBERFUNCTIONODCIAGGREGATETERMINATE(SELFINZH_CONCAT_IM,

FLAGSINNUMBER)

RETURNNUMBER

IS

BEGIN

RETURNVALUE:=CURR_STR;

RETURNODCICONST.SUCCESS;

END;

MEMBERFUNCTIONODCIAGGREGATEMERGE(SELFINOUTZH_CONCAT_IM,

SCTX2INZH_CONCAT_IM)

RETURNNUMBER

IS

BEGIN

IF(SCTX2.CURR_STRISNOTNULL)THEN

SELF.CURR_STR:=SELF.CURR_STR||','||SCTX2.CURR_STR;

ENDIF;

RETURNODCICONST.SUCCESS;

END;

END;

GO

CREATEORREPLACEFUNCTIONZH_CONCAT(P1VARCHAR2)

RETURNCLOBAGGREGATEUSINGZH_CONCAT_IM;

或则 嫌写自定义函数太麻烦,用xmlagg就可以了,支持返回clob和string类型 selectrtrim(xmlagg(xmlparse(contentl||','wellformed)).getclobval(),',')/*.getstringval()*/from (selectlevelaslfromdualconnectbylevel<=5000)

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值