wm_concat 处于无效状态的解决方案

alexlee 2023-3-13 607 3/13

一. 今天一个项目报表,突然间报错了,最烦的就是这情况,明明什么也没有改,就突然间不行了,跑不动了,直接报错了。

  1. 首先我们要排查一下问题的原因,再从根本上来解决问题。
  2. 那根据实际情况,报表确实没有进行过修改,最近也没有更新版本的情况下。
  3. 综合考虑后,才知道原来升级了数据库版本了,升级数据库版本后,确实会导致有些函数在高版本的数据库里边是不支持的,必须修改语法或是直接更换函数名称。

4. 经过排查后,原来是 wmsys.wm_concat 这个函数处于无效状态,这是一个可以将多个相同字段,根据字 段分组,用相应符号隔开合成一个字段的函数。

如下图:

wm_concat 处于无效状态的解决方案

这个函数在12c oracle 数据库版本中已经被弃用了,所以我们要用相应12c支持的函数来支持。

listagg(分割字段,',') within group (order by  字段)

使用相应的函数代替,就可以正常运行视图了。

5. 那总结一下,如何避免以上的情况呢?其实做了这么多项目,数据库要升级跟迭代是经常要发生的事情。

当然有些项目为了求稳,基本上不升级数据库跟程序版本。其实各有利弊,假如真升级了数据库版本,也只能及时检查项目的一些

兼容性,及时修正,就可以了。

以上是自己的做为资深开发的一些个人经历,把这些经验分享给大家,希望以后大家在从事开发中,可以避免不必要的麻烦,跟浪费时间精力。

要是大家喜欢我的文章的话,可以在文章下留言或是联系我,共同进步,共同探讨开发的一些案例,促进彼此间的交流,分享一些日常的开发趣事。

 

- THE END -
最后修改:2024年1月25日
0

共有 0 条评论