怎么在Oracle12C数据库创建wm_concat函数
发表于:2024-09-29 作者:千家信息网编辑
千家信息网最后更新 2024年09月29日,本篇内容介绍了"怎么在Oracle12C数据库创建wm_concat函数"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅
千家信息网最后更新 2024年09月29日怎么在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安全错误
数据库的锁怎样保障安全
重庆荣昌农副配送软件开发
网络安全知识特别简单
全国网络安全法宣传栏
服务器分期
工业网络安全协作
科全软件连接服务器失败
网络安全盾牌logo
h3c管理服务器
学网络技术短期培训有哪些
银川网络安全等级保护测评机构
服务器代理程序php源码
数据库加密系统厂商
目前tbc值得去的部落服务器
90天可以学会网络安全吗
在 数据库修改demo
票房数据库最新
战地一租服务器
软件开发公司需要的证书
数据库专项调优
28岁开始学软件开发
苏州渊然互联网科技
关于服务器的上市公司
blast数据库
vb连接数据库远程访问
想编程软件学什么软件开发
我的世界服务器丢失
java程序员 数据库
ios 图片上传服务器
做软件开发厉害的人
电脑代理服务器后怎么