- 浏览: 1763065 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (520)
- Oracle (10)
- Oracle错误集 (8)
- Oracle安装升级 (15)
- Oracle日常管理 (51)
- Oracle字符集 (7)
- Oracle备份恢复 (24)
- Oracle优化 (4)
- Oracle编程 (52)
- Oracle导入导出 (19)
- Oracle体系结构 (15)
- Oracle网络 (2)
- Oracle安全 (2)
- Oracle权限 (3)
- Oracle数据字典和性能视图 (2)
- Oracle常用地址 (5)
- SQLPLUS专栏 (7)
- SqlServer (13)
- SqlServer2005编程 (27)
- SqlServer2005管理 (15)
- MySQL (20)
- Dorado应用 (1)
- C# (24)
- Arcgis Server开发 (20)
- ArcSDE技术 (19)
- UML学习 (2)
- 设计模式 (2)
- JAVA EE (4)
- JavaScript (3)
- OFBIZ (27)
- JAVA WEB开发 (22)
- Linux&Unix (34)
- SHELL编程 (14)
- C语言 (11)
- 网络协议 (14)
- FREEMARKER (2)
- GROOVY (2)
- JAVA语言 (3)
- 防火墙 (0)
- PHP (2)
- Apache (2)
- Loader Runner (1)
- Nginx (3)
- 数据库理论 (2)
- maven (1)
最新评论
-
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
怼怼怼怼:
oracle的timestamp类型使用 -
pg_guo:
感谢
oracle中查看用户权限 -
xu234234:
5、MapResourceManager控件中添加了两个服务, ...
北京ArcGis Server应用基础培训笔记1
构建测试表:
create table TABLE1 ( ID INTEGER, NAME VARCHAR2(10) ) create table TABLE2 ( ID INTEGER, ROLE VARCHAR2(10) ) insert into TABLE1 (ID, NAME) values (1, '张三'); insert into TABLE1 (ID, NAME) values (2, '李四'); commit; insert into TABLE2 (ID, ROLE) values (1, '查询'); insert into TABLE2 (ID, ROLE) values (1, '分析'); insert into TABLE2 (ID, ROLE) values (1, '决策'); insert into TABLE2 (ID, ROLE) values (2, '查询'); commit;
要求输出结果:
ID NAME ROLE 1 张三 查询,分析,决策 2 李四 查询
方法一、使用wmsys.wm_concat
select table1.*,wmsys.wm_concat(role) from table1,table2 where table1.id=table2.id group by table1.id,table1.name
方法二、使用sys_connect_by_path
select id, name, ltrim(max(sys_connect_by_path(role, ',')), ',') from (select row_number() over(partition by table1.id order by name) rn,table1.*, role from table1, table2 where table1.id = table2.id) start with rn = 1 connect by prior rn = rn - 1 and prior id = id group by id, name order by id
方法三、使用自定义函数
create or replace function my_concat(mid in integer) return varchar2 --记住:参数和返回值里的数据类型都不用定义长度 is result varchar2(4000); --定义变量,记住Oracle中定义变量不需要 begin for temp_cursor in (select role from table2 where id=mid) loop --此处在游标FOR循环中使用查询 result :=result || temp_cursor.role || ','; --Oracle中字符连接使用||,而sql server中用+ end loop; result := rtrim(result,','); --去掉最后一个空格,还有Oracle中的赋值前面没有set return result; end; select table1.*,my_concat(table1.id) from table1,table2 where table1.id=table2.id group by table1.id,table1.name order by table1.id
发表评论
-
To_Date函数用法
2014-11-07 11:04 1721spl> select * from emp ... -
Oracle中的MD5加密
2014-02-15 10:18 1465一、技术点 1、 DBMS_OBFUSCATION_TO ... -
oracle行列转换总结
2014-02-15 10:18 1006最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换 ... -
Oracle数据库中的''与NULL的关系
2014-02-15 10:17 1321在Oracle数据库中''与NULL是等价的。均表示空值, ... -
快速删除重复的记录
2014-02-15 10:17 647做项目的时候,一位同事导数据的时候,不小心把一个表中的数据 ... -
Oracle的rownum原理和使用
2014-02-15 10:17 1114Oracle的rownum原理和使用 在Oracle中, ... -
ORACLE中查询某个字段包含回车换行符
2013-04-11 15:42 11286很简单,但是很多人一下估计还不一定知道。 select * ... -
ORACLE触发器(转)
2013-03-06 23:58 1157本篇主要内容如下: ... -
使用forall语句的bulk dml操作
2008-11-13 17:27 3793在oracle 8i或更高版本的forall语句中,oracl ... -
判断俩个值的大小函数sign
2008-11-10 11:13 2935比较大小select decode(sign(变量1-变量2) ... -
Oracle 触发器应用
2008-11-06 15:37 2203触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程, ... -
PLSQL学习笔记
2008-10-23 16:58 2285在网上看到的一个比较好的PLSQL学习笔记,放在这里方便以后查 ... -
Oracle自定义函数实例
2008-10-22 16:35 20098--没有参数的函数 create or replace fun ... -
Oracle自定义类型使用一例
2008-10-22 16:28 4281一、创建自定义类型 create type t_air as ... -
Oracle存储过程实例
2008-10-22 15:30 3522/*不带任何参数存储过程*/ create or replac ... -
Oracle的异常处理
2008-10-22 14:40 3034oracle提供了预定义例外 ... -
识别低效的语句
2008-10-15 09:04 1465SELECT EXECUTIONS , DISK_READS, ... -
PL/SQL Developer使用技巧
2008-10-07 15:18 67191、PL/SQL Developer记住登陆密码 在使用 ... -
Oracle 绑定变量
2008-10-06 10:53 4382在oracle 中,对于一个提交的sql语句,存在两种可选的解 ... -
使用 WMSYS.WM_CONCAT 进行列转换
2008-09-10 14:13 2100select t.rank, t.Name from t_me ...
相关推荐
在Oracle数据库环境中,WMSYS.WM_CONCAT函数是一个用于字符串连接的实用工具,尤其在处理多值列时非常有用。然而,有时由于各种原因,这个函数可能丢失或损坏,需要进行重建。以下是对重建WMSYS.WM_CONCAT函数涉及的...
`wmsys.wm_concat`函数与`OVER`子句结合使用,可以实现更复杂的窗口操作。`OVER`子句允许我们定义一个窗口,这个窗口可以在整个结果集上,也可以基于某些特定的分组。这使得我们可以计算跨行的聚合函数,而不仅仅是...
综上所述,解决"ORA-00904 WMSYS.WM_CONCAT标识符无效"的问题,主要是通过转向Oracle提供的新功能如LISTAGG,或者自定义合适的聚合函数来完成。提供的压缩包文件可能是为了解决这个问题而设计的,具体使用方法应参照...
在Oracle数据库中,`WMSYS.WM_CONCAT`函数是一个非常实用的工具,它用于将多行数据合并成一个单行字符串。然而,由于其内部处理机制,当需要合并的数据量过大时,可能会遇到“字符串缓冲区太小”的错误。这是因为`WM...
Oracle10g之后有些版本已不包含WMSYS.WM_CONCAT函数,若用到此函数, 系统会提示异常:ORA-00904: "WM_CONCAT": invalid identifier 因此需单独重建此函数,方法如下: 解压附件,在sqlplus中执行包里的owmctab....
接下来,我们将详细分析给定的部分内容中的SQL语句,理解其如何实现对`wmsys.wm_concat`函数结果的拆解。 #### SQL语句解析 ```sql with tt as ( select 1 id, 'Jack,Tom,Ben' Name from dual union all select ...
没有WMSYS.WM_CONCAT方法 需要的文件 owmctab.plb owmaggrs.plb owmaggrb.plb 拷贝三个文件到 $ORACLE_HOME\RDBMS\ADMIN\ 目录下 打开命令行 sqlpus , 用sys 登陆 执行命令 @$ORACLE_HOME\RDBMS\ADMIN\owmctab.plb...
解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可。 简单来说,用PL/SQL执行下一下几个脚本就可以了。 特别要注意:PL/SQL登录时,要...
Oracle数据库提供了多种方法来实现这一需求,其中`WMSYS.WM_CONCAT`是一个非常实用且高效的函数,它可以将多个字符串值合并成一个单独的字符串,并在每个值之间插入指定的分隔符。 #### 二、WMSYS.WM_CONCAT函数...
这个错误通常意味着试图访问或使用`WMSYS.WM_CONCAT`函数时遇到了问题,这是一个在早期Oracle版本中提供的聚合函数,用于字符串连接,但在较新的版本中被弃用并替换为其他更安全和高效的解决方案。 `WMSYS`是Oracle...
3. **使用其他数据库功能**:除了LISTAGG,还可以考虑使用XMLAGG、CONNECT_BY_LEVEL等其他Oracle函数,结合转换和处理来达到类似的效果。 4. **查询优化**:在某些情况下,通过改变查询策略,比如使用子查询、连接...
wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法
本文将详细介绍如何利用`WMSYS.WM_CONCAT`来实现这一功能。 首先,`WMSYS.WM_CONCAT`是Oracle提供的一种字符串拼接函数,它可以将相同分组内的多行数据以特定的分隔符(默认为逗号)连接起来。例如,如果我们有一个...
本文将详细介绍如何使用Oracle中的`WMSYS.WM_CONCAT`函数来实现列的拼接,并通过具体的例子帮助理解其应用场景。 ### Oracle中的WMSYS.WM_CONCAT函数 #### 函数介绍 `WMSYS.WM_CONCAT`函数是Oracle提供的一个用于...
WMSYS.WM_CONCAT函数是这个系统中的一个重要组成部分,用于处理字符串的连接操作,尤其在数据仓库的ETL(Extract, Transform, Load)过程中十分常见。 当遇到“WMSYS 重建”的情况,通常是因为WMSYS.WM_CONCAT函数...
很多场合我们都会用到...sys_connect_by_path(字段名, 2个字段之间的连接符号),这里的连接符号不要使用逗号,oracle会报错,如果一定要用,可以使用replace替换一下,方法如下 REPLACE(字段名,原字符,’,’)。这个
WMSYS.WM_CONCAT是Oracle Spatial中的一个函数,用于处理多行文本数据的连接操作,但在某些情况下可能会出现"标识符无效"的错误。这个问题通常出现在数据库升级、恢复或者对象权限出现问题时。 当您遇到“WMSYS.WM_...