当前位置: 首页 > news >正文

Oracle12c创建WM_CONCAT函数

Oracle12c默认情况下没有WM_CONCAT函数,如需使用,需要手工创建。

 

-------*********************  第一步,使用普通用户登录  *************

alter user wmsys account unlock;

alter user WMSYS identified by sys;
 
GRANT CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
ALTER ANY TABLE, ALTER ANY PROCEDURE,
DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE,
    create trigger,
    unlimited tablespace,
    debug any procedure, debug connect session,dba
TO WMSYS;

-------*********************  第二步 使用 WMSYS 用户登录,密码sys  *************

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
);
/
 
--定义类型body:
CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL
IS
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL)
RETURN NUMBER
IS
BEGIN
SCTX := WM_CONCAT_IMPL(NULL) ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,
P1 IN VARCHAR2)
RETURN NUMBER
IS
BEGIN
IF(CURR_STR IS NOT NULL) THEN
CURR_STR := CURR_STR || ',' || P1;
ELSE
CURR_STR := P1;
END IF;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER
IS
BEGIN
RETURNVALUE := CURR_STR ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,
SCTX2 IN WM_CONCAT_IMPL)
RETURN NUMBER
IS
BEGIN
IF(SCTX2.CURR_STR IS NOT NULL) THEN
SELF.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 wmsys.WM_CONCAT_IMPL
/
create public synonym wm_concat for wmsys.wm_concat
/
 
grant execute on WM_CONCAT_IMPL to public
/
grant execute on wm_concat to public




-------*********************  第三步 使用普通用户登录  *************
alter user wmsys account lock;

 
http://www.jsqmd.com/news/411418/

相关文章:

  • 供应商风险评估方法
  • 聊聊GEO优化公司,东莞新纪元助力大湾区企业抢占先机 - 工业品牌热点
  • Redis 线程模型面试题汇总!
  • 【硬核搭档】迅为RK3588成功适配飞牛FnNAS,你的私有云迎来性能猛兽!
  • 503. 下一个更大元素 II
  • 盘点成都比较不错的国际留学品牌机构,四川外国语大学国际本科值得关注 - myqiye
  • 从零开始,高效学习SEO策略,助力网站流量腾飞
  • 瑞祥卡回收攻略:快速兑换现金避免浪费! - 团团收购物卡回收
  • 基于uWebsockets开源库实现http文件上传功能
  • 钛合金核心认知|为什么成为高端领域刚需 - 非研科技
  • AI神话破灭?最新研究:96%的工作任务,AI做得比人差
  • 收藏!一文彻底搞懂Transformer中的归一化技术,大厂面试必考
  • 2026高低压开关柜与箱式变电站厂家推荐:实力厂家矩阵,点亮智能电力工程新图景 - 深度智识库
  • 2026年充电桩厂家推荐排行榜:液冷/超级/智能柔性充电桩技术实力与市场口碑深度解析 - 品牌企业推荐师(官方)
  • 也许你需要一个管理 Agent Skills 的可视化 App
  • 上海洁净板喷漆修复价格多少钱,哪家性价比高 - mypinpai
  • 2026年三苯基膦好用的品牌推荐,华威化工位居前列 - 工业品牌热点
  • 多种优化算法优化WSN网络覆盖附Matlab实现
  • 聊聊大模型推理系统之 FlowPrefill:清华北科大团队如何突破队头阻塞瓶颈,将 LLM 服务吞吐量提升 5.6 倍?
  • 中央空调在江浙粤地区好用吗,有哪些靠谱品牌推荐 - 工业设备
  • 爱思唯尔(Elsevier)全新系统投稿流程
  • 交稿前一晚!AI论文网站 千笔ai写作 VS 笔捷Ai,本科生首选!
  • 深度学习搜索Agent架构精讲:从迭代到递归,一篇就够了,值得反复研读
  • 盘点深圳本地靠谱的GEO推广服务,哪家性价比高值得推荐? - 工业品网
  • 反序列化漏洞分析讲解,零基础入门到精通,收藏这篇就够了
  • 全国房车展大通房车价格如何,选购时要考虑什么 - mypinpai
  • 家居软装公司性价比对比,昆明优选软装优势在哪 - 工业品牌热点
  • 多目标粒子群优化(MOPSO)进行多目标巡检附matlab代码
  • 论文浅尝 | 基于知识图谱检索的LLM推荐系统生成(ACL2025)
  • 2026年 加气机厂家推荐排行榜:LNG/LPG/CNG/汽车/天然气/压缩天然气加气机品牌实力与技术创新深度解析 - 品牌企业推荐师(官方)