- 浏览: 132616 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (165)
- 数据库 (45)
- 架构 (0)
- java web前端+框架 (9)
- java web后端+框架 (56)
- Eclipse插件 (1)
- 解题思路 (2)
- Eclipse (2)
- linux (6)
- jquery (4)
- 正则 (3)
- jsp (1)
- javascript (8)
- oracle (39)
- 生活 (1)
- weblogic (5)
- tomcat (3)
- Jrebel (1)
- powerdesigner (1)
- svn (1)
- log4j (1)
- IDE (1)
- POI (2)
- jvm (2)
- ssh (1)
- http (1)
- notepad++ (2)
- 润乾 (1)
- 设计模式 (0)
- 实用类Utils (2)
- 算法 (1)
- xml (1)
- 实用类 (2)
最新评论
-- wm_concat出现在oracle10g版本中,不仅是加密的,而且是在一个单独的用户中,不方便使用。并且10g以前的版本也用不上。经过破解移植,可以方便大家使用
-- 将下边的一个type,一个函数的创建脚本执行,就可以构建自己的wm_concat(这里叫zh_concat)。使用方法同wm_concat:
-- type:
create or replace TYPE zh_concat_im
AUTHID CURRENT_USER AS OBJECT
(
CURR_STR VARCHAR2(32767),
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,
P1 IN VARCHAR2) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,
SCTX2 IN zh_concat_im) RETURN NUMBER
);
/
create or replace TYPE BODY zh_concat_im
IS
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im)
RETURN NUMBER
IS
BEGIN
SCTX := zh_concat_im(NULL) ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,
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 zh_concat_im,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER
IS
BEGIN
RETURNVALUE := CURR_STR ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,
SCTX2 IN zh_concat_im)
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 zh_concat(P1 VARCHAR2)
RETURN VARCHAR2 AGGREGATE USING zh_concat_im;
/
-- 将下边的一个type,一个函数的创建脚本执行,就可以构建自己的wm_concat(这里叫zh_concat)。使用方法同wm_concat:
-- type:
create or replace TYPE zh_concat_im
AUTHID CURRENT_USER AS OBJECT
(
CURR_STR VARCHAR2(32767),
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,
P1 IN VARCHAR2) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN zh_concat_im,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,
SCTX2 IN zh_concat_im) RETURN NUMBER
);
/
create or replace TYPE BODY zh_concat_im
IS
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT zh_concat_im)
RETURN NUMBER
IS
BEGIN
SCTX := zh_concat_im(NULL) ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT zh_concat_im,
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 zh_concat_im,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER
IS
BEGIN
RETURNVALUE := CURR_STR ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT zh_concat_im,
SCTX2 IN zh_concat_im)
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 zh_concat(P1 VARCHAR2)
RETURN VARCHAR2 AGGREGATE USING zh_concat_im;
/
- 自写函数用于替换wm_concat函数.zip (644 Bytes)
- 下载次数: 7
发表评论
-
oracle sql替换指定范围的字符串
2015-06-18 17:49 1115--oracle替换指定范围的字符串(范围4-6) selec ... -
oracle字符集修改 中文乱码
2015-03-30 15:06 960sqlplus / as sysdba;//操作系统用户认证模 ... -
转:ORACLE表空间管理维护
2015-03-27 11:25 550ORACLE表空间管理维护 2013-11-11 23:2 ... -
oracle表关联层级树查询
2015-03-20 17:27 652select level ,lpad(' ', ( ... -
转:oracle层次查询 树查询 (详细)
2015-03-20 15:03 885oracle层次查询 转自:http://www.2cto. ... -
oracle树查询(叶子、带缩进)
2015-03-17 09:46 1326select t.func_id as func_id --I ... -
ORACLE表空间管理维护
2015-01-22 11:34 453http://www.cnblogs.com/kerrycod ... -
禁用启用所有外键约束.tst
2015-01-12 11:05 605禁用所有外键约束.tst declare cursor c ... -
oracle查询生成列别名
2015-01-06 15:00 464select ',' ,col.COLUMN_NA ... -
linux下重启oracle
2015-01-05 15:44 546oracle/oracle连接ssh后 登录数据库 ... -
分页帮助类-oracle-java
2014-10-09 17:46 477/** * 分页帮助类 * * @author ver ... -
Oracle 列转行函数 Listagg()
2014-09-25 13:54 519Oracle 列转行函数 Listagg() 博客分类: O ... -
oracle删除重复记录
2014-08-22 15:49 375delete from cred_account ca1 w ... -
oracle获取过程的错误异常代码,错误,异常栈信息
2014-08-22 15:19 336得到oracle异常行号,代码,异常栈信息 Sql代码 d ... -
数据库导入导出dump.txt
2014-07-28 10:26 466数据库导入导出dump -
Oracle分组分段统计-sum+case when+group by使用实例
2014-06-13 09:30 1508实例演示: (1)查询表users中的数据。 ... -
oracle表空间管理
2014-04-24 11:15 731--查看修改ORACLE表空间 --1、查看所有表空间信息 s ... -
连接到sqlplus
2014-04-17 11:25 472root/passwd su - oracle sqlplus ... -
0001-Oracle-系统-视图
2014-03-29 09:59 473--oracle树查询 select * from FUNC ... -
ORACLE查看并修改最大连接数
2014-03-26 13:52 573ORACLE查看并修改最大连接数 第一步,在cmd命令行,输入 ...
相关推荐
在Oracle数据库中,`wm_concat`函数曾是一个非常实用的工具,用于将多个行的数据合并成单个字符串,尤其在需要进行数据汇总时非常方便。然而,从Oracle 11g版本开始,出于性能和安全性的考虑,Oracle官方取消了这个...
Oracle从12C版本开始,不支持wm_concat函数,我们可以采取的办法有使用listagg函数代替wm_concat函数,或者为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。
标题“解决Oracle没有WM_CONCAT函数”暗示了这个问题的背景:用户在尝试使用WM_CONCAT时遇到了问题,或者想要在不支持此函数的数据库环境中实现类似的功能。这可能是因为他们正在处理需要聚合多个字符串字段的查询,...
Oracle数据库在11g版本及以上,对某些内置函数进行了调整,其中包括了`WM_CONCAT`。这个函数在早期的Oracle版本中被广泛用于聚合多个值为一个字符串,但在11g及以后的版本中,它已被标记为过时,并且在某些情况下...
WMSYS.WM_CONCAT是Oracle Spatial中的一个函数,用于处理多行文本数据的连接操作,但在某些情况下可能会出现"标识符无效"的错误。这个问题通常出现在数据库升级、恢复或者对象权限出现问题时。 当您遇到“WMSYS.WM_...
这个问题通常发生在试图使用WM_CONCAT函数时,而这个函数并不是Oracle标准的一部分,它可能源自某些特定的Oracle版本或者第三方工具。 `owmctab.plb`、`owmaggrs.plb`和`owmaggrb.plb`看起来像是PL/SQL块(PL/...