ITPub博客

首页 > 应用开发 > IT综合 > wmsys.wm_concat 超长问题 解决方案

wmsys.wm_concat 超长问题 解决方案

IT综合 作者:babyyellow 时间:2020-12-31 01:03:16 0 删除 编辑


原文:  https://blog.csdn.net/xmm_1030/article/details/46724153


使用wmsys.wm_concat多列合成一列遇到问题
ORA-22813: 操作数值超出系统的限制

10G  总长度不能超过 4k 。 

已经写了存储过程作为替代方案了

  1. CREATE OR REPLACE TYPE zh_concat_im
  2. AUTHID CURRENT_USER AS OBJECT
  3. (
  4. CURR_STR clob,
  5. STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im) RETURN NUMBER,
  6. MEMBER FUNCTION ODCIAGGREGATEITERATE( SELF IN OUT zh_concat_im,
  7. P1 IN VARCHAR2) RETURN NUMBER,
  8. MEMBER FUNCTION ODCIAGGREGATETERMINATE( SELF IN zh_concat_im,
  9. RETURNVALUE OUT clob,
  10. FLAGS IN NUMBER)
  11. RETURN NUMBER,
  12. MEMBER FUNCTION ODCIAGGREGATEMERGE( SELF IN OUT zh_concat_im,
  13. SCTX2 IN zh_concat_im) RETURN NUMBER
  14. );
  15. CREATE OR REPLACE TYPE BODY zh_concat_im
  16. IS
  17. STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im)
  18. RETURN NUMBER
  19. IS
  20. BEGIN
  21. SCTX := zh_concat_im( NULL) ;
  22. RETURN ODCICONST.SUCCESS;
  23. END;
  24. MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,
  25. P1 IN VARCHAR2)
  26. RETURN NUMBER
  27. IS
  28. BEGIN
  29. IF(CURR_STR IS NOT NULL) THEN
  30. CURR_STR := CURR_STR || ',' || P1;
  31. ELSE
  32. CURR_STR := P1;
  33. END IF;
  34. RETURN ODCICONST.SUCCESS;
  35. END;
  36. MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,
  37. RETURNVALUE OUT clob,
  38. FLAGS IN NUMBER)
  39. RETURN NUMBER
  40. IS
  41. BEGIN
  42. RETURNVALUE := CURR_STR ;
  43. RETURN ODCICONST.SUCCESS;
  44. END;
  45. MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,
  46. SCTX2 IN zh_concat_im)
  47. RETURN NUMBER
  48. IS
  49. BEGIN
  50. IF(SCTX2.CURR_STR IS NOT NULL) THEN
  51. SELF.CURR_STR := SELF.CURR_STR || ',' || SCTX2.CURR_STR ;
  52. END IF;
  53. RETURN ODCICONST.SUCCESS;
  54. END;
  55. END;
  56. create or replace FUNCTION zh_concat(P1 VARCHAR2)
  57. RETURN clob AGGREGATE USING zh_concat_im ;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2746720/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 心清净,身柔软
请登录后发表评论 登录
全部评论
oracle MySQL Postgresql 专职数据库dba。 系统架构师。 mysql 官方认知dba 。 15年专职dba 经验。 潜意识沟通实证者 心理咨询师。 禅修布道者, 禅修指导员。 禅定实证者。

注册时间:2010-12-02

  • 博文量
    367
  • 访问量
    1908648