怎么在Oracle12C数据库创建wm_concat函数
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"怎么在Oracle12C数据库创建wm_concat函数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2025年11月07日怎么在Oracle12C数据库创建wm_concat函数
本篇内容介绍了"怎么在Oracle12C数据库创建wm_concat函数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
当我们的程序需要连接12C数据库时,原本使用wm_concat函数的地方会出现报错,这是由于12C已经摒弃了wm_concat这个函数,可以采取的办法有使用listagg函数代替wm_concat函数,但是程序中所有涉及wm_concat函数的地方都得改成listagg函数的写法,所以为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。
一、用sys用户以SYSDBA身份登录数据库,执行以下命
CREATE OR REPLACE TYPE WM_CONCAT_IMPL AS OBJECT-- AUTHID CURRENT_USER AS OBJECT(CURR_STR VARCHAR2(32767), STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL) RETURN NUMBER,MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,P1 IN VARCHAR2) RETURN NUMBER,MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,RETURNVALUE OUT VARCHAR2,FLAGS IN NUMBER)RETURN NUMBER,MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,SCTX2 IN WM_CONCAT_IMPL) RETURN NUMBER);/
--定义类型bodyCREATE OR REPLACE TYPE BODY WM_CONCAT_IMPLISSTATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL)RETURN NUMBERISBEGINSCTX := WM_CONCAT_IMPL(NULL) ;RETURN ODCICONST.SUCCESS;END;MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,P1 IN VARCHAR2)RETURN NUMBERISBEGINIF(CURR_STR IS NOT NULL) THENCURR_STR := CURR_STR || ',' || P1;ELSECURR_STR := P1;END IF;RETURN ODCICONST.SUCCESS;END;MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,RETURNVALUE OUT VARCHAR2,FLAGS IN NUMBER)RETURN NUMBERISBEGINRETURNVALUE := CURR_STR ;RETURN ODCICONST.SUCCESS;END;MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,SCTX2 IN WM_CONCAT_IMPL)RETURN NUMBERISBEGINIF(SCTX2.CURR_STR IS NOT NULL) THENSELF.CURR_STR := SELF.CURR_STR || ',' || SCTX2.CURR_STR ;END IF;RETURN ODCICONST.SUCCESS;END;END;/
--自定义函数列表CREATE OR REPLACE FUNCTION wm_concat(P1 VARCHAR2)RETURN VARCHAR2 AGGREGATE USING WM_CONCAT_IMPL ;/
二、创建同义词并授权
create public synonym WM_CONCAT_IMPL for sys.WM_CONCAT_IMPL/create public synonym wm_concat for sys.wm_concat/grant execute on WM_CONCAT_IMPL to public/grant execute on wm_concat to public/
"怎么在Oracle12C数据库创建wm_concat函数"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
函数
数据
数据库
程序
内容
地方
更多
知识
实用
学有所成
接下来
写法
办法
原本
可以通过
同义词
困境
实际
工作量
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
徐州宏源软件开发
数据库服务连接器
游戏服务器是根据什么决定
北京软件开发公司有多少
拉萨东塔网络安全学院白盒测试
服务器异常日志
网络安全小报简易画
工作系统连接数据库错误
查询数据库的字符
服务器会翻墙吗
沃尔沃事故数据库
安卓软件开发人员数量
新加坡网络安全ppt
湖南网联银通网络技术
专门放数据库的单元
国家网络安全系列动漫
常用网络安全工具
服务器有必要安装安全软件吗
阿里云服务器设置
网络安全定义属性和发展阶段
江苏通用软件开发格式化
服务器运行记录一般保存多久
信息网络技术概念股龙头
北京启名星辰网络安全
顺丰数据库故障
串口服务器不接收数据
健全网络安全评估
服务器安装软件要什么
数据库 with
天天炫斗服务器