oracle 11.2.0.1升级到11.2.0.4
今天在做公司数据库升级测试的时候发现数据升级后有两个视图无法正常编译,始终是无效状态,于是从dba_views中找到视图的SQL
select owner,view_name,text from dba_views where view_name='VIEW_CHINESEQIANBAO';
在升级后的数据库中执行后发现提示返回值有CLOB类型,中间有用到UNION函数,故而报错;
于是想到可能是数据库升级导致wm_concat函数前后有差异,所有做了如下实验:
将视图SQL截取wm_concat部分,简单改写了下,执行看看结果返回的类型,如下在升级前的数据库中返回为字符型;
在升级后的11.0.2.4中执行后的结果显示为CLOB类型;
所有原因找到了,那么这个视图SQL在升级后肯定需要改写,改写方案如下,只需将wm_concat用listagg函数替换就好了,当然还有其他函数可以使用~
select replace(listagg(partiname,',') within group (order by partiname),',',',') from oawf1.wfworkitem;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29924458/viewspace-1483584/
,如需转载,请注明出处,否则将追究法律责任。