问题:生产库用的是Oracle 11g,开发用的是Oracle 12c,存在差异,需要解决下部分函数(WMSYS.WM_CONCAT)在11g可以使用,但12c不能使用的情况
关于WM_CONCAT函数在官方文档里明确表示,最好不用wm_concat, 如下图,使用了移植性将无法保证
但当工程里已经有大量的此类函数使用时,修改代码不现实的情况下就需要保留此函数,另谋他法。
一、使用PLSQL连接开发环境数据库
二、创建WMSYS用户,并为其授权
-- 创建用户
CREATE USER WMSYS IDENTIFIED BY WMSYS123456 DEFAULT TABLESPACE isc;
--授权用户
GRANT CONNECT,RESOURCE TO WMSYS;
三、以该用户角色登录数据库
--以新建用户Login
conn WMSYS/WMSYS123456
四、创建TYPE、FUNCTION
-- 创建类型
CREATE OR REPLACE TYPE wm_concat_impl
AUTHID CURRENT_USER
AS OBJECT (
curr_str VARCHAR2 (32767),
STATIC FUNCTION odciaggregateinitialize (sctx