oracle的WM_concat [问题点数:20分,结帖人gao_allen]

Bbs1
本版专家分:10
结帖率 100%
Bbs7
本版专家分:11969
Blank
红花 2013年8月 Oracle大版内专家分月排行榜第一
2013年7月 Oracle大版内专家分月排行榜第一
2013年6月 Oracle大版内专家分月排行榜第一
2013年5月 Oracle大版内专家分月排行榜第一
Blank
黄花 2013年9月 Oracle大版内专家分月排行榜第二
Bbs4
本版专家分:1879
Bbs6
本版专家分:5717
oracle wm_concat超长
各位,wm_concat超长了,好像只能容纳4000个,怎么办呢,这里一般情况下都会超过这个长度,求大神给解啊rnrn
oracle的wm_concat函数和排序
<em>oracle</em>中,wm_concat函数是一个聚合函数,和mysql中的group_concat函数类似。 通过wm_concat函数可以实现行转列 NO CLASS SCORE 1001 1 99 1002 2 98 1001 3 97 1004 1 98 1005 1 97 1006 1 99 1007 2 98 1008 3 97
oracle 创建wm_concat函数
wm_concat函数在<em>oracle</em> 10G以下版本是没有的,这个就需要我们自己来创建,有需要的就下载下来,直接运行就行了,如果在运行中出中,请分开运行,不要一次性运行哟
oracle没有WM_CONCAT函数问题
1.函数wm_concat(列名),该函数可以把列值以”,”号分隔起来,并显示成一行。 2.<em>oracle</em>没有WM_CONCAT函数问题用<em>oracle</em>自带脚本重建wmsys.wm_concat函数 $ sqlplus / as sysdba SQL&amp;gt; @$ORACLE_HOME/rdbms/admin/owmctab.plb 略… SQL&amp;gt; @$ORACLE_HOME/rdbm...
oracle 多行合一 wm_concat 函数
wmsys.wm_concat函数,它的作用是以','链接字符  (版本10G以上) 例子如下: 创建表: create table idtable (id number,name varchar2(30)); 准备数据: (共六条) insert into idtable values(10,'ab'); insert into idtable values(10,'b
oracle wm_concat 字符串缓冲区太小
数据少的时候wm_concat(字段名)可以正常拼接出字符串,数据多的时候就会报错(如图片所示) 原sql语句是: select t2.districtname, t.diagnosis_name, t3.cn, t3.names   from T_DISEASE_DIAGNOSIS t  inner join t_sys_district t2     on t.district_id
oracle合并列函数wm_concat
select dept.dname,wm_concat(emp.ename) from dept,emp where dept.deptno=emp.deptno group by dept.dname
Oracle没有WM_CONCAT函数的解决办法
Oracle没有WM_CONCAT函数的解决办法 WM_CONCAT是<em>oracle</em>的非公开函数,并不鼓励使用,新版本<em>oracle</em>并没有带此函数,需要手工加上。 1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus -logon sys/123 as sysdba 3、执行@C:\Users\JOYTRAVE...
oracle wm_concat函数合并字段
select replace (wm_concat(a),',','') from  (select ename a from emp where sal&amp;gt;2500 union all select ename a from emp where job='MANAGER');
Oracle数据库迁移MySQL——wm_concat()方法
将Oracle数据库迁移至MySQL时,使用MySQL的GROUP_CONCAT()替换Oracle的wm_concat()方法,由于MySQL的GROUP_CONCAT()默认长度限制为1024,并不能满足项目需要,修改MySQL的my.ini将长度限制调整为102400 group_concat_max_len = 102400 重启MySQL生效;...
oracle 9i 实现wm_concat函数
<em>oracle</em> 9i 实现wm_concat函数 进行一列多行合并,之间使用,分割
wm_concat() 函数用法
该函数作用是把列值合并(用英文逗号分割),但是数量有限制,返回的字符数上线是4000(<em>oracle</em>11g),超过会报错,听说<em>oracle</em>版本到11.2.0.2.0或以上返回的是clob类型,长度就很长了,但是没有试过 select wm_concat(colName) from table ...
Oracle XE如何添加wm_concat函数
搜了一下,网上给出的是下面的答案。rn[code=css]CREATE OR REPLACE TYPE wm_concat_implrn AUTHID CURRENT_USERrnAS OBJECT (rn curr_str VARCHAR2 (32767),rn STATIC FUNCTION odciaggregateinitialize (sctx IN OUT wm_concat_impl)rn RETURN NUMBER,rn MEMBER FUNCTION odciaggregateiterate (rn SELF IN OUT wm_concat_impl,rn p1 IN VARCHAR2rn )rn RETURN NUMBER,rn MEMBER FUNCTION odciaggregateterminate (rn SELF IN wm_concat_impl,rn returnvalue OUT VARCHAR2,rn flags IN NUMBERrn )rn RETURN NUMBER,rn MEMBER FUNCTION odciaggregatemerge (rn SELF IN OUT wm_concat_impl,rn sctx2 IN wm_concat_implrn )rn RETURN NUMBERrn);rn/rn rnCREATE OR REPLACE TYPE BODY wm_concat_implrnISrn STATIC FUNCTION odciaggregateinitialize (sctx IN OUT wm_concat_impl)rn RETURN NUMBERrn ISrn BEGINrn sctx := wm_concat_impl (NULL);rn RETURN odciconst.success;rn END;rn MEMBER FUNCTION odciaggregateiterate (rn SELF IN OUT wm_concat_impl,rn p1 IN VARCHAR2rn )rn RETURN NUMBERrn ISrn BEGINrn IF (curr_str IS NOT NULL)rn THENrn curr_str := curr_str || ',' || p1;rn ELSErn curr_str := p1;rn END IF;rn rn RETURN odciconst.success;rn END;rn MEMBER FUNCTION odciaggregateterminate (rn SELF IN wm_concat_impl,rn returnvalue OUT VARCHAR2,rn flags IN NUMBERrn )rn RETURN NUMBERrn ISrn BEGINrn returnvalue := curr_str;rn RETURN odciconst.success;rn END;rn MEMBER FUNCTION odciaggregatemerge (rn SELF IN OUT wm_concat_impl,rn sctx2 IN wm_concat_implrn )rn RETURN NUMBERrn ISrn BEGINrn IF (sctx2.curr_str IS NOT NULL)rn THENrn SELF.curr_str := SELF.curr_str || ',' || sctx2.curr_str;rn END IF;rn rn RETURN odciconst.success;rn END;rnEND;rn/rn rnCREATE OR REPLACE FUNCTION wm_concat (p1 VARCHAR2)rn RETURN VARCHAR2rn AGGREGATE USING wm_concat_impl;rn/[/code]rn但是我放到navicat里运行报错了啊,请问上述代码该如何执行?
oracle合并列的函数wm_concat的使用详解
<em>oracle</em> wm_concat(column)函数实现字段合并 例: 表 create table pm_ci (ci_id varchar(20) primary key, stu_ids varchar(100)); insert into pm_ci values('1','1,2,3,4'); insert into pm_ci values('2','1,4');
Oracle wm_concat在12c版本中的替代方法
select contractdetailid ,listagg(valuename,',')within group (order by valuename) as reson from approvedetail a left join (select * from dictionary where type ='SAPApproveCode' and languagecode= 'cn')...
oracle整理之 wm_concat(column)函数的使用
Oracle数据中,使用wm_concat(column)函数,可以进行所选字段数据值的合并; 一、对单个字段值合并 例如:  sql:select t.id,t.name,t.price,t.count,t.uid from goods t; 各字段分别是:id,名称,价格,数量,购买者Id 查询购买者所购买的各种商品 sql:select t.uid,wm_concat(t.n...
关于Oracle中instr和wm_concat函数的使用
先建立两张表 instr是字符查找函数,如果找到会返回第一次出现的位置,我们可以用作模糊查询,例如: select * from table2 where instr(table1Id, '1') &amp;gt; 0 结果为: 可以看到查询出来的是table1Id列包括1的字符串。 我们可以通过table2中的table1Id去查找table1的名字,例如我们查询table2中i...
(转)oracle wm_concat(column)函数的使用
<em>oracle</em> wm_concat(column)函数的使用 <em>oracle</em> wm_concat(column)函数的使用 2010-10-25 12:17 佚名 互联网 我要评论(2) 字号:T | T <em>oracle</em>数据库中,使用wm_concat(column)函数,可以进行字段合并,下文对该功能的实现方法作了详细的介绍,供您参考学习。 AD:2013大数据全球技术...
Oracle合并多列到一行 wm_concat
Oracle在group by后合并表的某一列,以逗号隔开 或者合并整个表中的一列 函数为wm_concat 用法如下: 把表中一列合并成一行 select wm_concat(songid) from album_song; 把结果里的逗号替换成&quot;|&quot; select replace(wm_concat(songid),',','|') from album_song; ...
oracle 12c 兼容 11g 的 wm_concat 方法.zip
<em>oracle</em> 12c 兼容 11g 的 wm_concat 方法。 <em>oracle</em> 12c wm_concat。 owmaggrb.plb,owmaggrs.plb,owmctab.plb 1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus sys/123 as sysdba 3、执行@C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb.plb; 4、如果执行结果报错,说找不到WMSYS用户,那么执行 @C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmctab.plb;再执行owmaggrb和owmaggrs。 <em>oracle</em> 12c wm_concat
Oracle wm_concat函数用于行列转行
首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以&quot;,&quot;号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用 准备测试数据   SQL&amp;gt; create table test(id number,name varchar2(20)); SQL&amp;gt; insert into test values(1,'a'); SQL&amp;gt; insert ...
Oracle的行转列的函数wm_concat的db2实现
Oracle的行转列的函数wm_concat的db2实现
oracle 12c兼容11g的wm_concat方法
owmaggrb.plb,owmaggrs.plb,owmctab.plb 1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus sys/123 as sysdba 3、执行@C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb.plb; 4、如果执行结果报错,说找不到WMSYS用户,那么执行 @C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmctab.plb;再执行owmaggrb和owmaggrs。
Oracle新版中不支持 WM_CONCAT的处理方法
Oracle新版中不支持 WM_CONCAT的处理方法,直接创建一个自定义函数代替
wm_concat函数
我用wm_concat函数报错rn[img=https://img-bbs.csdn.net/upload/201309/29/1380433457_680078.jpg][/img]rn求解决方法啊 急用啊
wm_concat问题
select bh,wm_concat(distinct name) aa,wm_concat(distinct id) bb from .... left join ....rn类似于这样的语句查出来后name和id并不是对应的。rnname idrnaaa 1rnbbb 2rnccc 5rnddd 3rnrn出来后rnaa bbrnaaa,bbb,ccc,ddd 1,2,3,5rnrnname和id并没有按照顺序对应,应该怎么写sql呢rn结果应该是rnaa bbrnaaa,bbb,ccc,ddd 1,2,5,3
Oracle 函数 wm_concat 将列转行 用法 实例
这篇文章主要记录下我工作中遇到sql语句查询的问题,工作中有个需求是做问卷调查,然后统计导出数据,其中有个问题是多选题,存的是答案表对应的答案的id(以逗号分隔),然后查询的时候怎么样才能把这个问题的答案也查出来拼接成逗号分隔,就用到了 WM_CONCAT 函数,下面就说一下具体用法。       1. 首先看一下我的表结构,总共 有三张表 ,qv_question 记录了问题,qv_ans
Oracle wm_concat函数 转换成MySQL的函数
Oracle wm_concat函数 转换成MySQL的函数 (勿喷,只为自己以后复习) 之前在一个项目中用Oracle数据库,其中有段sql是这样的: select wm_concat('"' || d.name || '":"' || d.code || '"') as resvalue, d.type_code from parm_data d left j...
wm_concat 实现Oracle的行转换成列
接上编内容,http://zhangjiaweixt.iteye.com/blog/765181 两个表的结构不变 用WMSYS.WM_CONCAT 实现行转换成列 SELECT A.ZDBH,A.NAME,A.ADDRESS,A.TYPE,WMSYS.WM_CONCAT(B.MEAL_NAME) AS MEAL FROM TD_TERMINAL_MANAGE A ,POS_...
oracle使用wm_concat 进行分组拼接
<em>oracle</em> 的wm_concat 和mysql 的group_concat类似,主要是先分组,然后将分组后输入同组的的内容用&quot;,&quot;拼接在一期例子:SELECT a.period_id,   wm_concat( b.activity_id) ACTIVITY_ID,   wm_concat(a.lottery_number) LOTTERY_NUMBER,   wm_concat(b.perio...
oracle 在pl/saql wm_concat 结果成
SQL> select to_char(wmsys.wm_concat(sysdate)),wmsys.wm_concat(sysdate) from dual;rn rnTO_CHAR(WMSYS.WM_CONCAT(SYSDAT WMSYS.WM_CONCAT(SYSDATE)rn---------------------------------------- --------------------------------------------rn09-11月-11 rnrn环境: win7 64位 pl/sql 8.0 rn怎么解决 不让其显示
oracle 合并函数wm_concat(column)和分割函数
----------------------------------------- u_id       goods            num ------------------------------------------ 1                苹果                2 2                 梨子               5 1
oracle over函数, wm_concat()字符串连接函数使用
OVER (        [ ]        [ ]        [ ]       )      在应用关联的开窗函数前确定行集的分区和排序。 也就是说,OVER 子句定义查询结果集内的窗口或用户指定的行集。 然后,开窗函数将计算窗口中每一行的值。 您可以将 OVER 子句与函数一起使用,以便计算各种聚合值,例如移动平均值、累积聚合、运行总计或每组结果的
Oracle列转行函数wm_concat版本不兼容解决方案
业务场景 本博客记录一下Oracle列转行函数在Oracle11的一些不兼容问题,vm_concat在一些业务场景是必须的。不过这个函数使用要谨慎,底层实现应该也是group by等等实现的,性能并不是特别好。这个函数在Oracle12是没有的,在Oracle11是不太兼容的,Oracle10可以正常使用。最近遇到这个问题,网上博客很多都写到了自定义列转行函数的办法去解决。但是这种办法并不一定适用...
自定义oracle聚集函数,类似于功能wm_concat
Oracle提供了很多预定义好的聚集函数,比如Max(), Sum(), AVG(), 但是这些预定义的聚集函数基本上都是适应于标量数据(scalar data), 对于复杂的数据类型,比如说用户自定义的Object type, Clob等, 是不支持的。    但是,幸运的是, 用户可以通过实现Oracle的Extensibility Framework中的ODCIAggregate
Oracle中的wm_concat和in两函数的联合使用
Oracle中的wm_concat和in两函数的联合使用 (1)wm_concat 此函数主要是实现字段合并。 如: select to_char(wm_concat(id)) from NcsStepConveySetting where id in (237481727,237521783) 效果如下: 其中: (2)in 语法: SELECT columns ...
wm_concat invalid identifier
10.1.0.4.2的数据库rnSQL*Plus: Release 10.1.0.4.2 - Production on 星期四 8月 8 10:18:59 2013rnCopyright (c) 1982, 2005, Oracle. All rights reserved.rnrn表如下:rncreate table t_lyh(rn c1 number,rn c2 varchar2(20)rn);rn表数据:rn C1 C2rn---------- --------------------rn 1 arn 1 brn 1 crn 2 xrn 2 yrn 3 zrn用apps用户登录数据库, rnselect a.c1, wmsys.wm_concat(a.c2) new_result from t_lyh a group by a.c1rn却报错:"WMSYS","WM_CONCAT":invalid identifierrnrn将函数赋wm_concat权限给用户apps,却赋不了rngrant select ON wm_concat to appsrn报错:table or view does not existrn不是说10g以上的就有wm_concat吗,怎么会提示没有表或视图rnrn哪位帮忙看看rn
Oracle数据库WM_CONCAT函数问题
项目中原有的sql语句使用了WM_CONCAT函数,这个函数在<em>oracle</em>12c的版本里不识别,要更换成 listagg(..) within group(..)的函数 select listagg(t.name,',') within group (order by t.id) from table_name t; 为什么<em>oracle</em> 12c 无法使用WM_CONCAT? ...
自定义聚集函数代替wm_concat,WM_CONCAT字符超过4000的处理办法
-- 准备数据 create table test(id number,name varchar2(100)); drop table test insert into test values(1,'a'); insert into test values(1,'b'); insert into test values(1,'c'); insert into test val...
【函数】wm_concat包的订制
【函数】wm_concat包的订制 1BLOG文档结构图 2前言部分 ...
行转列函数wm_concat
wm_concat是10G提供的行转列函数 比如 select warehouse_id as wid from table  and rownum &amp;lt;= 6 1               200020 2               200020 3               200020 4               200020 5               ...
Oracle12c创建wm_concat函数
11gr2和12C上已经摒弃了wm_concat函数,当时我们很多程序员在程序中使用了该函数,导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题
wm_concat使用方法的记载
                 wm_concat使用方法的记载 需求:房产资料表存的是房产档案,合同表存有房产pk,但是显示是多行的,需要展现为一列name 效果如下    : SELECT pk_house from fdc_pr_housePact where pk_head ='1002A11000000004NGEC' SELECT fdc_pr_house...
关于Oracle函数wm_concat的一些问题
Oracle的wm_concat函数在不同的版本中,返回值类型是不同的。因为是Oracle内部函数,不建议在实际应用中使用,该函数随着<em>oracle</em>版本的升级也不会向下兼容。
wm_concat列合并
原语句:select patient_name from T_NMS_FALLBED使用后:select wm_concat(patient_name) from T_NMS_FALLBED仅供学习记录,请大神勿喷,如有错误,请多多指教!
wm_concat函数使用问题
[img=https://img-bbs.csdn.net/upload/201410/14/1413296396_579978.jpg][/img]rn用了这个函数之后 就开始莫名其妙的报这个错误,啥也不干,过一阵这个错误又没了 啥情况,有人知道么
oracle函数wm_concat行转列
一、需求:数据库表一对多查询结果单行显示 数据库中的两张表:教师表(TEACHER)、教师所教科目表(TEACHER_KM),现在要查询教师信息列表,把教师的科目信息以语文、数学这种形式展示,也就是说需要将多条科目信息取到名称放到教师的一条记录中。 最近学习中用到了一对多的查询,在对查询结果的处理上要求将多条数据 简化的教师表(TEACHER),ID:主键,JSMC:教师名称,CSNY:出生
求类似wm_concat的功能
NamernA,BrnArnBrnrnselect wmsys.wm_concat(name) name from tablern返回的结果是A,B,A,Brnrn有没有办法返回A,Brn
转换组合函数wm_concat
Oracle10g以上的版本中提供了转换组合函数。 例如表test_t的原始数据查询结果为: [code=&quot;java&quot;]select * from latty.test_t 1 200405 5761 G 7393344.04 2 200405 5761 J 5667089.85 3 200405 5762 G 6315075.96 4 200405 5762 J 6328716.15...
"WM_CONCAT": 标识符无效
导致原因: 11gr2和12C上已经摒弃了wm_concat函数,当时我们很多程序员在程序中确使用了该函数,导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题,但是注意,及时创建了该函数,在使用的过程中,也需要用to_char(wm_concat())方式,才能完全替代之前的应用。 解决办法: sys 登录 1.解锁sys用户 a...
wm_concat函数的排序问题
准备数据: create table test( n varchar2(20), m varchar(20)  );   insert into test values ('0',  '1');  insert into test values ('1',  '1');  insert into test values ('10', '1');  insert into test values ...
ORACLE升级11g以上之前版本的wm_concat()函数失效
先执行: create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum_string varchar2(4000), static function ODCIAggregateInitialize(v_self in out string_sum_obj) return number,
oracle使用wm_concat()长度超过系统限制解决办法
select XMLAGG(XMLELEMENT(E, code || ',')).EXTRACT('//text()').getclobval() as codes from table
oracle 关键字 wm_concat 将多条数据合并成一条
用Oracle自带的wm_concat函数即可实现这样的拼接功能,默认拼好以逗号分隔:  Sql代码   select t.col1,          t.col2,          wm_concat(t.col3) col3,          wm_concat(t.col4) col4,          wm_concat(t.col5) col5
sqlserver汇总后多行转一行(Oracle的WM_CONCAT()的sqlserver方法)
create table testsqdquery( sqdid varchar(36), cxdbh varchar(20) ) insert into testsqdquery(sqdid, cxdbh) values('id001','001'); insert into testsqdquery(sqdid, cxdbh) values('id001','0001'); insert i...
oracle替换wm_concat varchar处理为clob处理的方法
是处理wm_concat中以varchar处理合并列字段过小。 clob 可以加大处理。 <em>oracle</em> 9I <em>oracle</em> 10G 必备
oracle的函数wm_concat字符超过4000的处理办法
当执行sql: select wm_concat(colA) as colA from tableA 提示: java.sql.SQLException: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 ORA-06512: 在 "WMSYS.WM_CONCAT_IMPL", line 30 ) wm_concat的最大长度只有4000,超过就会报错,
Oracle 行转列(pivot、wm_concat、decode)使用总结(转载)
在日常使用中,经常遇到这样的情况,需要将数据库中行转化成列显示,如 转化为 这个时候,我们就需要使用pivot函数 百度后,参考网址http://www.2cto.com/database/201501/367164.html ,完成了以下操作 with temp as( select '四川省' nation ,'成都市' city,'第一' ranking from dual un...
改写的wm_concat函数运行效率问题
之前因为遇到过超长字符串拼接的问题,也在本版问过。后来经过大家的帮助,找到一个改写wm_concat的办法,使其支持返回clob类型。rnrn 虽然功能上是可以的,但是在实际运行中,发现效率要比wm_concat函数慢的根本不在同一个等级上,wm_concat处理大约7万条数据的拼接仅需要3秒,而改写的函数需要可能1个小时。rnrn 这里,有没有<em>oracle</em>达人能够帮忙看一下,下一步还可以怎么优化呢?或者有什么其他办法,实现这种超长的字符串拼接问题。rnrnrn附上我改写的代码(zh_concat基本上就是参照网上wm_concat的源代码做了少量更改):rn==============================================================================================================rnCREATE OR REPLACE TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECTrn(rn CURR_STR clob,rn STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im)rn RETURN NUMBER,rn MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,rn P1 IN varchar2) RETURN NUMBER,rn MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,rn RETURNVALUE OUT clob,rn FLAGS IN NUMBER)rn RETURN NUMBER,rn MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,rn SCTX2 IN zh_concat_im) RETURN NUMBERrn)rnrnrnrnCREATE OR REPLACE TYPE BODY zh_concat_im ISrn STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im)rn RETURN NUMBER ISrn BEGINrn SCTX := zh_concat_im(NULL);rn RETURN ODCICONST.SUCCESS;rn END;rn MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,rn rn P1 IN VARCHAR2) RETURN NUMBER ISrn BEGINrn IF (CURR_STR IS NOT NULL) THENrn CURR_STR := CURR_STR || ';' || P1;rn ELSErn CURR_STR := P1;rn END IF;rn RETURN ODCICONST.SUCCESS;rn END;rn MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,rn RETURNVALUE OUT clob,rn FLAGS IN NUMBER) RETURN NUMBER ISrn BEGINrn RETURNVALUE := CURR_STR;rn RETURN ODCICONST.SUCCESS;rn END;rn MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,rn SCTX2 IN zh_concat_im) RETURN NUMBER ISrn BEGINrn IF (SCTX2.CURR_STR IS NOT NULL) THENrn SELF.CURR_STR := SELF.CURR_STR || ';' || SCTX2.CURR_STR;rn END IF;rn RETURN ODCICONST.SUCCESS;rn END;rnEND;rnrnCREATE OR REPLACE FUNCTION zh_concat(P1 VARCHAR2) RETURN clobrn AGGREGATE USING zh_concat_im;rnrn==============================================================================================================
Oracle9i添加 wm_concat函数(转)
一: 创建type头 create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum_string varchar2(4000), static function ODCIAggregateInitialize(v_self in out string_sum_obj) retu...
在Oracle12C数据库创建wm_concat函数
当我们的程序需要连接12C数据库时,原本使用wm_concat函数的地方会出现报错,这是由于12C已经摒弃了wm_concat这个函数,可以采取的办法有使用listagg函数代替wm_concat函数,但是程序中所有涉及wm_concat函数的地方都得改成listagg函数的写法,所以为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。 一、用sys用户以SYSDBA...
关于wm_concat函数的奇怪问题
一个查询语句我这样写的: wm_concat(distinct 字段)rn这个语句直接执行是好用的,但是放到存储过程中,CURSOR CUR_MAIN IS 这样的写法中,rn就会报ORA-30482: DISTINCT option not allowed for this function的错误,编译不通过rnrn这事为什么呢rn
wm_concat 行转列数据量大的解决方案
wmsys.wm_concat  这个函数存在缺陷,数据量大的时候,容易报ora-22813    没办法只能通过重新定义一个行转列函数,copy了一下 http://www.savedba.com/?p=955  这个人写的函数有点问题,自己又改了下。drop type t_dj_concat;drop function dj_concat;create or replace type t_dj...
OracleXE中没有WM_CONCAT函数
包含owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 三个文件,可解决OracleXE中没有WM_CONCAT函数的问题;解决方案如下: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\JOYTRAVEL\Desktop\WMSYS用户\owmctab.plb; 再执行owmaggrb和owmaggrs
Oracle函数wm_concat移植到PostgreSQL注意事项
Oracle的包(package)中的代码片段如下: ---处理菜单 tempsql := 'insert into T_CALMENUFILTERCONFIG(ACCTSYSTYPE,NOTSHOWSUBMENU,ISSUE,USERID,HSAGENCY) '; tempsql :=tempsql||' select g.acctsystype,'''...
类似wm_concat功能的SQL语句!
wm_concat函数在合并列值的时候并不能按顺序合并,rn比如表A MARK IDrn A 1rn A 2rn A 3rnwm_concat之后得出的值是1,3,2,如果要得出1,2,3这样按顺序的值应该怎么写SQL?rn貌似应该用 OVER (PARTITION BY)来写,但是试了半天也没写出来,求大神。
db2 实现oracle wm_concat函数的方法-db2开发系列(一)
db2 实现<em>oracle</em> wm_contact函数
ORACLE 修改wm_concat逗号分隔符为自定义的符号
 重写wm_concat函数,将分隔符改成 -----(自己定义) create or replace type MyConcatImpl as object ( str VARCHAR2(32767), -- second highest value seen so far static function ODCIAggregateInitialize(sctx IN O...
解决Oracle中wm_concat函数会返回的问题
Oracle中,sql语句使用wm_concat函数,可能会返回&amp;lt;clob&amp;gt;类型。要想正常输出回字符串的形式,可以在前面加to_char().即:to_char(wm_concat(column))
oracle 使用wm_concat()函数合并多行数据失败
数据表结构如图1,想要得到结果 where C001=**的时候C011=**,**,**这样的形式,但是使用wm_concat()函数查出的却是空的,why?查询代码:[code=csharp]select wm_concat(C011) from T_00_901 where C001=9111501161400000010[/code]rn[img=https://img-bbs.csdn.net/upload/201501/16/1421397067_705786.jpg][/img]图1rn[img=https://img-bbs.csdn.net/upload/201501/16/1421397081_773659.jpg][/img]图2
wm_concat 函数在PG中替代
WM_CONCAT 经常使用到行转列上,早期的代码里这个函数用的会比较多,但是可惜在12c中,这个函数已经过期了: WM_CONCAT is gone in 12c. Use LISTAGG instead https://asktom.<em>oracle</em>.com/pls/apex/f?p=100:11:::NO:RP:P11_QUESTION_ID:9529613900346315...
wm_concat函数及函数的嵌套
通过5个面试题的讲解,教会大家等值关联,分组查询,行转列,列转行,日期转换、自定义函数,执行计划分析,组内排序,函数的嵌套使用
Oracle12C关于WM_CONCAT的创建函数
Oracle12C 中,去掉了 WM_CONCAT函数。 网上众多的还是恢复wmsys 用户,然后创建用户,授权等等,太过繁琐。 那就不能创建一个用户自己的函数,不得了。所有使用的非系统函数,都变成自己的呗。   函数创建如下:   CREATE OR REPLACE TYPE WM_CONCAT_IMPL AS OBJECT -- AUTHID CURRENT_USER A...
行列转换之字符串拼接(一)、WM_CONCAT函数
字符串拼接和分离(String Aggregation Techniques)是数据处理时经常需要用到一个技术,比如需要按时间顺序拼装一个快递的运输记录,或者将流程中各个环节的处理人拼装为一个字符串。 Oracle中有多种方法来实现这个功能,这里罗列几种,详细用法可以参考下面的文章: - WM_CONCAT函数 - LISTAGG函数 - 自定义聚合函数 0.测试样例 这里介...
wm_concat函数报错,用什么替换?
Oracle的wm_concat函数是就是把几行的字段放到一行(所谓的行列转换)里面。废话不多说,看下面的我在网上找到的SQL 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以&quot;,&quot;号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用 准备测试数据 SQL&amp;gt; create table test(id number,name varchar2(20...
wm_concat函数将多行的字段转成一行
参考:http://blog.csdn.net/ojerryzuo/article/details/53927057
wm_concat 多行字符串拼接以及字符串拆分详解
一、wm_concat 多行字符串拼接 有如下员工部门表emp_dept,数据如下: ; 需要实现如下结果 就需要用到wm_concat 函数: sql如下: select dept_name 部门, wm_concat(t.emp_name) 员工 from emp_dept t group by dept_name 但是这样的查询结果却是: 这里还需要to_cha...
wm_concat(列名)拼接超过4000后异常
函数 wm_concat(列名)该函数可以把列值以“,”号分隔起来,并显示成一行 但是进行拼串的时候,返回是字符串类型,可能遇到拼串形成的结果集大于4000,这时候,系统会提示,超过系统限制。 解决办法: XMLAGG(XMLELEMENT(E, 列名 || ',')).EXTRACT('//text()').getclobval() 是先将列名组装成以“,”号分隔的xml,再转成
Oracle12 中WM_CONCAT函数无法使用
提示WM_CONCAT标识符无效,请大侠给解决方案
wm_concat和listagg用法,合并行数据
方法一 wn_concat() 函数 1、把以下图中Name一样的数据合并为一条,而且NO的值要这样显示如 C.1,C.2 2、实现这种效果的操作如下,先把Name的值进行分组(group by),再把NO的值用 wm_concat()函数合并起来(注意:记得要to_char(),要不然数据显示不出来)   方法二 listagg() 函数   第一步和上面的一致 使用 ...
decode函数,wm_concat,nvl,group by综合使用
select b.part_no,b.serial_number,wm_concat(b.ifxd) IF_RED from ( select decode(sign(nvl(c.remove_qty, 0) - nvl(c.return_qty, 0)),0,0,1) ifxd, d.* from MM_ZCJ_BASE_INFO d left join MM_ZCJ_DETAIL ...
wm_concat 操作数值超出系统的限制
在网上查了一下,说是wm_concat最大长度为30K,有没有好的解决方案呢?
WM_CONCAT 排序问题,困扰了很久,求助!
WITH T AS rn(rn SELECT 2 AS ID , '沈阳市' AS CITY, '1' TYPE,2 SOFT FROM DUAL rn UNION ALL rn SELECT 3 AS ID , '大连市', '1' TYPE, 1 SOFT FROM DUAL rn UNION ALL rn SELECT 5 AS ID , '长春市', '2' TYPE , 3 SOFT FROM DUAL rn UNION ALL rn SELECT 6 AS ID , '延边市', '2' TYPE , 1 SOFT FROM DUAL rn)rnrn SELECT WM_CONCAT(CITY) 城市rn FROM Trn GROUP BY TYPErnrn我想查询完后的结果根据soft字段排序,如下rnrn大连市,沈阳市rn延边市,长春市rnrn哪位高手能帮我解答,困扰了我很久!rn
oracle数据库中——wm_concat实现列的拼接
原表: 目标表: SQL语句: SELECT KHH,WM_CONCAT(SXZ) FROM TKHSX_CS GROUP BY KHH; --注意后面有group by
自定义resultMap,使用wm_concat函数,创建索引
select A.orderid, wm_concat(A.prostatus3||'已'||A.sprocessname) softstatus from (select max(orderid...
多条数据结果和成一条数据 wm_concat()
Oracle数据库   wm_concat  一 使用场景 我们要把开发部合并成一条信息显示在页面上  代码如下 select wm_concat(t.姓名) from dual t group by '部门' 这样就能合并成条数据  ...
程序包或函数 WM_CONCAT 处于无效状态
今天运行了很久的项目,点了一下查询突然发现出现了一个 程序包或函数 WM_CONCAT 处于无效状态的问题报错,妈耶,因为啥啊,咋地了,跑了这么就怎么就瘫痪了 废话不多说,找到报错的sql 然后勒,当然是把这个sql扔到PL/SQL 跑一下啊,然后就发现 ” 程序包或函数 WM_CONCAT 处于无效状态” 找到那个函数,完事打一顿,然后再看一下Functions 有没有红色的x...
wm_concat函数在存过里性能问题
写了个存过,用了这个函数,在这里能卡个二秒.语句拿出去执行只要零点几秒..谁知道怎么回事?另外是老版本,没有listagg函数.如果哪位大神有类似的优化的实现也发个吧,我试试看
oracle12中无法使用wm_concat解决
使用新的函数代替listagg(合并字段,'连接符号') within group (order by 排序字段)但是这样使用如果内容多的话会报错‘返回的结果过长’,所以需要使用方法将其转换为globxmlagg(xmlparse(content 合并字段||',' wellformed) order by 排序字段).getclobval() 分租的话在sql后面使用group by 进行分组
WM_CONCAT多行根据主键合并成一行
现在需求如下: 表1--表4中,每个字段1均为主键,要将四张表查询出的结果展示为下图。 主要用到了WM_CONCAT函数。测试用到的表结构和表数据如下: create table A1 ( ID1 VARCHAR2(1), YI VARCHAR2(10) ); create table A2 ( ID2 VARCHAR2(1), ER VA...
oracle中wm_concat函数将同一列的多行字段值拼接成一行
1.wm_concat函数:wm_concat(字段名) 在查询语句中,将指定字段名的返回结果的所有列的值都用‘,’连接起来拼接成一列。 用下图数据作为基础数据。在这些数据基础上运用wm_concat函数。 一般情况下,wm_concat函数配合group by 子句使用。 以下图为基础数据,应用wm_concat配合group by 子句使用。
请问怎么样在Oracle的9i版本中使用wm_concat这个函数,自定义此函数为什么不行??
每次执行strcat时总是提示错误:[color=#FF0000]程序包或函数STRCAT处于无效状态[/color]rn到底是什么情况,函数写得也没什么问题呀,请各位帮帮忙!rn自定义的函数如下:rncreate or replace function strcat(input varchar2)rn return varchar2rn parallel_enable aggregate using strcat_type;rn TYPE:rn CREATE or replace type strcat_type as object (rn cat_string varchar2(4000),rn static function odciaggregateinitialize(cs_ctx in out strcat_type) return number,rn member function odciaggregateiterate(self in out strcat_type,value in varchar2) return number,rn member function odciaggregatemerge(self in out strcat_type,ctx2 in out strcat_type) return number,rn member function odciaggregateterminate(self in out strcat_type,returnvalue out varchar2,flags in number) return numberrn )
oracle,mysql多行合并为一行显示。wm_concat,concat,concat_ws,group_concat使用简介
场景:相同的列合并为一行。不同的列也合并为一行,列值用逗号(默认是逗号)拼接。如下图一 <em>oracle</em>:    WM_CONCAT,11g的话,用Listagg分析函数 点击打开链接 。二 mysql:2.1 concat,concat_ws,group_concat使用简介:点击打开链接 。2.2 group_concat 语法:group_concat( [distinct] 要连接的字段 [o...
vrXUANRAN教程下载
非常好!大家要认真学习!发扬光大!再接再厉!努力向前! 相关下载链接:[url=//download.csdn.net/download/fsyd0703/4393898?utm_source=bbsseo]//download.csdn.net/download/fsyd0703/4393898?utm_source=bbsseo[/url]
入侵检测系统在高校网络中的应用研究下载
主要讲述了入侵检测系统在高校网络系统中的应用 相关下载链接:[url=//download.csdn.net/download/lchz999/8525467?utm_source=bbsseo]//download.csdn.net/download/lchz999/8525467?utm_source=bbsseo[/url]
mysql-5.1.73-win32.msi下载
安装版 mysql5.1的云盘下载链接,有需要的朋友可以下载。 相关下载链接:[url=//download.csdn.net/download/lu_chi/9204155?utm_source=bbsseo]//download.csdn.net/download/lu_chi/9204155?utm_source=bbsseo[/url]
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件
我们是很有底线的