怎么在Oracle12C数据库创建wm_concat函数
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"怎么在Oracle12C数据库创建wm_concat函数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2026年11月01日怎么在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安全错误
数据库的锁怎样保障安全
互联网科技图片
广东猪兼强互联网科技有限公司
科技互联网龙头
科技企业和互联网企业
互联网科技媒体
唐信互联网科技
碳银互联网科技
亿账通互联网科技
天下捷融互联网科技
隆华科技工业互联网
中国科技互联网公司收入
互联网与医疗科技
中国互联网公司排名锤子科技
深圳市罗太互联网科技有限公司
科技互联网的核心竞争力
高科技互联网套路
陕西云淼互联网科技公司
版纳互联网科技选哪家
承德科技产业互联网平台
山东亿川互联网科技有限责任公司
互联网科技开发公司
上海挚品互联网科技
上海喔噻互联网科技
互联网女皇 腾讯科技
深圳市运趣互联网科技有限公司
崇明区互联网教育科技诚信经营
宜昌元轩互联网科技有限公司
消费医药和互联网科技
雨阳互联网卡科技有限公司
云南互联网科技学费