--定义函数
CREATE OR REPLACE FUNCTION f_catstring (p_str VARCHAR2)
RETURN VARCHAR2
AGGREGATE USING t_stringconcat;
--定义类型
CREATE OR REPLACE TYPE t_stringconcat AS OBJECT (
str VARCHAR2 (1000),
oldstr VARCHAR2 (1000),
STATIC FUNCTION odciaggregateinitialize (sctx IN OUT t_stringconcat)
RETURN NUMBER,
MEMBER FUNCTION odciaggregateiterate (
SELF IN OUT t_stringconcat,
VALUE IN VARCHAR2
)
RETURN NUMBER,
MEMBER FUNCTION odciaggregateterminate (
SELF IN t_stringconcat,
returnvalue OUT VARCHAR2,
flags IN NUMBER
)
RETURN NUMBER,
MEMBER FUNCTION odciaggregatemerge (
SELF IN OUT t_stringconcat,
ctx2 IN t_stringconcat
)
RETURN NUMBER
);
--定义body
CREATE OR REPLACE TYPE BODY t_stringconcat
IS
STATIC FUNCTION odciaggregateinitialize (sctx IN OUT t_stringconcat)
RETURN NUMBER
IS
BEGIN
--初始化
sctx := t_stringconcat(NULL, NULL);
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregateiterate (
SELF IN OUT t_stringconcat,
VALUE IN VARCHAR2
)
RETURN NUMBER
IS
BEGIN
--解决拼接多个字段重复的问题
IF NOT SELF.oldstr IS NULL AND SELF.oldstr = VALUE
THEN
NULL;
ELSE
SELF.str := SELF.str || VALUE || ', ';
END IF;
SELF.oldstr := VALUE;
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregateterminate (
SELF IN t_stringconcat,
returnvalue OUT VARCHAR2,
flags IN NUMBER
)
RETURN NUMBER
IS
BEGIN
returnvalue := SUBSTR (SELF.str, 1, LENGTH (SELF.str) - 2);
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregatemerge (
SELF IN OUT t_stringconcat,
ctx2 IN t_stringconcat
)
RETURN NUMBER
IS
BEGIN
NULL;
RETURN odciconst.success;
END;
END;
以前程序在oracle 9i上测试通过.
分享到:
相关推荐
* 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序
Oracle自定义聚合函数,分析函数.
oracle自定义日期函数、你值得拥有!
oracle拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。
oracle 自定义函数 解析文件以“|”分割字符串
自定义聚集函数拼接字符串,根据网上常见的例子加以改进,可以自定义分隔符(利用的自定义type)。
ORACLE字符串函数ORACLE字符串函数ORACLE字符串函数
Oracle拆分字符串,字符串分割的函数,将返回一个表格,如果有需要的可以下载去看看。
oracle通过sql实现字符串转数字oracle函数,可用于字符串的最终排序
oracle自定义函数的总结,主要对如何定义函数以及使用。
主要介绍了Oracle自定义脱敏函数的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
Oracle字符相似度函数。在sql语句中直接用该函数来计算2个字符串相似度。
oracle日期函数字符函数聚合函数
Oracle聚合函数Oracle聚合函数Oracle聚合函数
关于Oracle自定义聚集函数的使用 。
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
ORACLE常用数值函数、转换函数、字符串函数介绍
oracle数据库,使用自定义函数,实现了金额的大写转换。sql语句中,直接调用此函数即可得到金额大写。
传入一个字符串和该字符串的分割字符,返回去重后的字符串,可以直接在plsql中运行,简单的函数运用,能处理oracle中。资源仅供参考