oracle中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似,不过group_concat函数比较强大,可以定义分隔符和排序,当然所谓强大是相对的,这里假使我们不知道oracle中的over函数,也不知道listagg函数. 我们先来看看wm_concat函数能实现什么功能,通俗点==>列传行,如果不明白,请看下面截图(可以看到分隔符默认为','顺序也是杂乱的)          所以,接下来,我们开始重写wm_concat函数(需要注意和需要说明的地方…

Oracle中wm_concat()函数的使用 wm_concat()函数是oracle行列转换函数,该函数可以把列值以‘,’分割开来,并显示成一行. 1.原数据: 2.把结果分组以‘|’分隔,以一行打印出来 3.over(partition by )的用法 4.over(order by )的用法…

Oracle创建WM_CONCAT函数 WM_CONCAT这个函数会出错,所以从 11g开始.官方不认可 WM_CONCAT.然后就没这个函数了, 下面就是创建WM_CONCAT这个函数的步骤 第一步: 下载三个文件:owmctab.plb . owmaggrs.plb . owmaggrb.plb 第二步: 用sqlplus登录:CONN SYS/PASS_WORD AS SYSDBA; 一.忘记除SYS.SYSTEM用户之外的用户的登录密码. 用SYS (或SYSTEM)用户登录: CONN…

wm_concat函数简单说就是行转列显示. 转自:http://christy-fang.iteye.com/blog/1299850 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子. 准备测试数据 SQL> create table test(id number,name varchar2(20)); SQL> insert into test values(1,'a'); SQL> ins…

有以下数据 deptname phone username isboss 部门A 电话1 员工A 0 部门A 电话1 领导A 1 部门B 电话2 员工B 0 部门B 电话2 员工C 0 部门B 电话2 领导D 1 需要展示效果 deptname phone boss emp 部门A 电话1 领导A 员工A 部门B 电话2 领导D 员工B,员工C 因为是oracle10g的原因,所以使用了wm_concat函数,但对wm_concat结果长度有限制,超出会报ORA-22922:不存在的LOB值,这…

WM_CONCAT是oracle的非公开函数,并不鼓励使用,新版本oracle并没有带此函数,需要手工加上. 1.下载三个文件:owmctab.plb  . owmaggrs.plb . owmaggrb.plb 2.用sqlplus登录:sqlplus -logon sys/123 as sysdba 3.执行@C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb.plb; 如果执行结果报错,说找不到WMSYS用户,那么执行 @C:\Users\JOYTRAV…

转载自:http://blog.itpub.net/post/42245/522757 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用 准备测试数据 SQL> create table test(id number,name varchar2(20)); SQL> insert into test values(1,'a'); SQL> insert into tes…

一.wm_concat函数 wm_concat能够实现同样的功能,但是有时在11g中使用需要用to_char()进行转换,否则会出现不兼容现象(WMSYS.WM_CONCAT: 依赖WMSYS 用户,不同oracle环境时可能用不了,返回类型为CLOB,可用substr截取长度后to_char转化为字符类型). 测试用表test_org_bak select * from test_org_bak; 1.:行转列(默认逗号隔开) select wm_concat(level_four_name)…

ORACLE可以借助DECODE函数,自定义顺序排序: select * from ( select 'Nick' as item from dual union all select 'Viki' as item from dual union all select 'Glen' as item from dual union all select 'Robin' as item from dual union all select 'Total' as item from dual ) pr…

http://dacoolbaby.iteye.com/blog/1698957 --20180327 重写wm_concat函数,解决行数超过上限问题 /*执行前请将APPS替换为当前登录用户*/ --1.创建自定义类型t_yd_concatCREATE OR REPLACE TYPE APPS.t_yd_concatAUTHID CURRENT_USER AS OBJECT( CURR_STR clob, STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCT…

ORACLE可以借助DECODE函数,自定义顺序排序: select * from ( select 'Nick' as item from dual union all select 'Viki' as item from dual union all select 'Glen' as item from dual union all select 'Robin' as item from dual union all select 'Total' as item from dual ) pr…

MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序. 下面给出3中比较常用的排序方式,mark一下 1.常规排序ASC DESC ASC 正序 DESC倒叙 -- 此处不用多讲 2.自定义排序 自定义排序是根据自己想要的特定字符串(数字)顺序进行排序. 主要是使用函数 FIELD(str,str1,str2,str3,...) MySQL的自定义排序,str与str1.str2.str3...进行比较,并按照str1,str2,str3..…

用wm_concat连接拼接字符串,测试环境是10g,一切正常 到了生产环境是11g,点开直接报错了 wm_concat函数在oracle 10g返回的是字符串,到了11g返回的是clob 解决办法:to_char(wm_concat())…

对于将一列多值合并成一行问题,oracle提供了wmsys.wm_concat和listagg函数处理此问题,下面我们以emp表中数据为例,看看两函数的使用方法 假设我们需要统计每种job下面有哪些员工,要求在一行显示员工姓名,首先看看emp表中的数据: ①利用listagg函数处理 ②利用wm_concat函数处理 wm_concat函数作用:除了处理多行合并问题,还给我们直接根据某个表的字段建立视图带来方便 ③注意分析函数中的partition by 与group by 的区别 下面我们看看…

在Oracle中使用wm_concat(column)可以实现字段的分组合并,逗号分隔. 例如,现有表temp_cwh_test: -- 创建临时表 create table temp_cwh_test ( u_id ), goods ), num ) ) -- 插入数据 insert into temp_cwh_test(u_id, goods, num) ); insert into temp_cwh_test(u_id, goods, num) ); insert into temp_cw…

昨天在测试的时候发现,开发人员写的一段程序放在开发库中是好的,但是放在测试库中就会有问题.开发人员一直找不到问题的原因在哪里.于是就花了点时间协助开发人员来找问题的根本原因. 通过一些技术手段,定位到问题是由一个SQL语句引起的. SQL语句如下: WITH PXQ_TASK_TEMP AS (SELECT A.DISTRIBUTE_DATE,          A.APP_NO,          A.TASK_ID,          A.TASK_NO,          A.ACTUAL…

REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr     :需要进行正则处理的字符串__pattern    :进行匹配的正则表达式__position   :起始位置,从第几个字符开始正则表达式匹配(默认为1)__occurrence :标识第几个匹配组,默认为1__modifier   :模式('i'不区分大小写进行检索:'c'区分大小写进行…

这个是因为字符集的问题,和空值是没关系的.其实已经取到了数据,可以验证一下返回的不是0,但是由于这个里面有个chr(0)字符,而且可能第一个字符就是chr(0),所以就显示得怪异的空现象.至于为何会出现chr(0),这就是因为WM_CONCAT函数的问题了,可能它对于多种字符集的处理不是很好吧,所以如果里面的参数不用to_char处理一下,就有可能出现乱码甚至为空的现象. 像这样: wmsys.wm_concat(to_char(tab.SYSTEM_SYMBOL)) AS SYSTEM_SYM…

先执行: create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum_string ), static function ODCIAggregateInitialize(v_self in out string_sum_obj) return number, --对象初始化 member function ODCIAggregateIterate(self in out string_sum_obj, value i…

方法一 wn_concat() 函数 1.把以下图中Name一样的数据合并为一条,而且NO的值要这样显示如 C.1,C.2 2.实现这种效果的操作如下,先把Name的值进行分组(group by),再把NO的值用 wm_concat()函数合并起来(注意:记得要to_char(),要不然数据显示不出来) 方法二 listagg() 函数 第一步和上面的一致 使用 listagg()函数 要把within group(order by s.no) 加上,它们是一体的…

业务场景 本博客记录一下Oracle列转行函数在Oracle11的一些不兼容问题,vm_concat在一些业务场景是必须的.不过这个函数使用要谨慎,底层实现应该也是group by等等实现的,性能并不是特别好.这个函数在Oracle12是没有的,在Oracle11是不太兼容的,Oracle10可以正常使用.最近遇到这个问题,网上博客很多都写到了自定义列转行函数的办法去解决.但是这种办法并不一定适用所有的业务场景.我并没有采用.不过有些场景还是可以使用的. 网上优秀例子 下面是网络记录比较详细的例…

Oracle经常使用函数 --TRUNC,TO_DATE,TO_CHAR,TO_NUMBER, SUBSTR,REPLACE.NVL .TRIM,wm_concat,upper, lower,length,add_months(sysdate,1) 查看oracle版本号: SELECT * from v$version 一.trunc函数 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其详细的语法格式例如以下: TRUNC(date[,fmt]) 当中:dat…

时间 2014-02-25 00:05:38  ITeye-博客 原文  http://53873039oycg.iteye.com/blog/2021445 主题 MySQLOracle数据库 昨天突然在 一篇博客中看到了Mysql也有rollup函数,原博文使用了rollup进行行列统计,原博文链接如下: http://www.cnblogs.com/lhj588/archive/2012/06/15/2550392.html 本博文主要是记录下mysql和oracle使用rollup函数进…

1.前言 Oracle可用连接函数会介绍以下几个 Oracle列转行函数 Listagg() strcat() wmsys.wm_concat() 2.Oracle列转行函数 Listagg() 2.1最基础的用法: LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来.其中LISTAGG函数第一个参数为要拼接的字段,第二个参数为用什么字符串进行连接eg : listagg(c…

Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值…

create or replace function Fuc_Get_AuthorName(RecID_In in varchar2, AdmID_In in varchar2) return varchar2 is Result varchar2(8000); names varchar2(4000); Cursor Cur_Get_AuthorNameS Is SELECT PEOPLENAME From TB_NEWS_CONTRI_AUTHOR Where REC_ID=RecID_In…

ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 select ascii('A') from dual; ASCII('A')---------- 65 2 CHR(arg1,[using nchar_cs])返回由参数arg1的代码所指定的字符.所返回的字符依赖于oracle所使用的底层字符编码设置. select chr(65) from dual…

Oracle的Nvl函数 nvl( ) 函数 从两个表达式返回一个非null 值. 语法 NVL(eExpression1, eExpression2) 参数 eExpression1, eExpression2 如 果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2.如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1.eExpression1 和 eExpression2 可以是任意一种数据类型…

mysql日期和时间格式转换 Linux scp 使用详解 Oracle/Mysql/SqlServer函数区别 2011-07-01 12:34:36|  分类: Mysql技术 |  标签:mysql  sqlsever  oracle  函数   |举报 |字号大中小 订阅     Sql代码 1.类型转换 --Oracle select to_number('123') from dual; --123; select to_char(33) from dual;  --33; sele…

[转]Oracle集合操作函数:union.intersect.minus 集合操作符专门用于合并多条select 语句的结果,包括:UNION, UNION ALL, INTERSECT, MINUS.当使用集合操作符时,必须确保不同查询的列个数和数据类型匹配. 集合操作符具有以下注意事项: 集合操作符不适用于LOB.VARRAY和嵌套表列. UNION.INTERSECT.MINUS操作符不使用于 LONG列. 如果选择列表中包含有表达式或者函数,那么必须为表达式或者函数定义列别名. 1.U…

oracle vm concat指定分隔符,重写Oracle的wm_concat函数,自定义分隔符、排序相关推荐

  1. oracle 触发器登录,【学习笔记】Oracle触发器 实现指定用户登录oracle案例

    天萃荷净 触发器实现指定用户登录oracle,分享一篇关于Oracle数据库安全策略,通过Oracle触发器实现限定user用户登录Oracle数据库的方法 1.创建允许登录用户表 CREATE TA ...

  2. oracle创建新指定表空间,oracle创建用户并指定表空间

    /*第1步:创建ODPS数据表空间 */ create tablespace ODPS logging datafile '/home/oracle/tablespace_dir/ODPS.dbf' ...

  3. oracle每个租户指定字符集,理解 Oracle 多租户体系中(12c,18c,19c)创建用户作用域范围...

    本篇探讨以下几个问题:你可提前猜测下面6个场景语句中,哪几个可以成功创建用户? 1. 在CDB级别中创建公共用户,不带 container 子句的效果: 2. 在CDB级别中创建公共用户,带 cont ...

  4. python 输出文件分隔符_使用Python文件读写,自定义分隔符的方法

    使用Python文件读写,自定义分隔符的方法 发布时间:2020-07-06 11:07:56 来源:亿速云 阅读:121 作者:清晨 小编给大家分享一下使用Python文件读写,自定义分隔符的方法, ...

  5. oracle创建新指定表空间,oracle创建表空间 创建用户指定表空间并授权

    1.创建表空间 例如: (1)表空间名为myplace: (2)数据文件路径为E:\oracle\oracle_home\oradata\myspace (3)文件名为mydbf.dbf,空间大小为3 ...

  6. oracle 给表指定表空间,oracle数据库创建用户指定表空间

    --创建临时表空间 create temporary tablespace test_temp --test_temp表空间名称 tempfile 'E:\oracle\product\10.2.0\ ...

  7. oracle的concat字符串太长,oracle 使用listagg函数后 字符串连接的结果过长

    oracle 使用listagg函数后 字符串连接的结果过长最终解决 SELECT r.department_id law_dept_id, ( SELECT xmlagg(xmlparse(cont ...

  8. oracle添加索引指定表空间,Oracle 创建索引表空间语法-oracle

    Oracle 的索引可分为5种,它们包括唯一索引.组合索引.反向键索引.位图索引和基于函数的索引. 1.创建索引的标准语法 以下为引用内容:  CREATE INDEX 索引名 ON 表名 (列名)T ...

  9. oracle 创建索引指定表空间,Oracle中如何把表和索引放在不同的表空间里

    因为: 1)提高性能:尽量把表和索引的表空间存储在不同在磁盘上,把两类不同IO性质的数据分开放,这样可以提高磁盘的IO总体性能: 2)便于管理:试想一下,如果索引的数据文件损坏,只要创建索引即可,不会 ...

最新文章

  1. python3安装setuptools步骤_setuptools、pip的安装
  2. 在Oracle中如何让SELECT查询绕过UNDO
  3. bde oracle 商友的流程_BorlandC++使用BDE访问Oracle方法
  4. 多线程学习(三)----死锁问题
  5. IOS7的蛋疼各种收集
  6. 机动车c1科三考试语言灯光,c1科目三灯光模拟考试
  7. 如何使用融云地图,文件等插件--融云 Android SDK 2.8.0+ Extension 开发文档
  8. 滴滴技术专家任玉刚:让你的职业迷茫从哪来回哪去
  9. 多多客id是什么意思_【拼多多】关于多多客比价行为规范解释说明
  10. Android Q 修改Fingerprint
  11. 小米微信与电脑连接到服务器,小米微信多开文件怎么上传电脑
  12. BZOJ_3689_异或之_可持久化Trie+堆
  13. web登录实现带php
  14. 在线问诊小程序|互联网医院系统好处有哪些?
  15. VMware-ovftool命令行部署与导出镜像
  16. Servlet - Filtering (过滤器))
  17. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口
  18. expect命令简介及使用案例
  19. 天融信学习笔记---DOS命令
  20. 东南亚各国电商生态分析及选品参考

热门文章

  1. 详解EM算法与混合高斯模型
  2. Hyperledger Fabric Java SDK最新教程
  3. vi格式化代码,撤销,重做,回退操作
  4. mysql数据库rpm包_MySQL 8.0官方数据库RPMZIP for Linux/windows x64安装包程序下载
  5. 怎么把数字替换成空格_剑指offer04:替换空格
  6. 动态分辨率是什么意思_什么是1080p、2k、4k?视频基础参数解释
  7. ncnn源码编译安装
  8. Linux 内核101:[译]并发导论
  9. logback的简单使用
  10. 字符串大小写互换方法