.CREATE OR REPLACE FUNCTION stragg(input varchar2) RETURN varchar2
PARALLEL_ENABLE
AGGREGATE USING string_agg_type;
--1
CREATE OR REPLACE TYPE "STRING_AGG_TYPE" as object
(
total varchar2(4000),
static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
return number,
member function ODCIAggregateIterate(self IN OUT string_agg_type,
value IN varchar2) return number,
member function ODCIAggregateTerminate(self IN string_agg_type,
returnValue OUT varchar2,
flags IN number)
return number,
member function ODCIAggregateMerge(self IN OUT string_agg_type,
ctx2 IN string_agg_type) return number
)
--2
create or replace type body string_agg_type is
static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
return number is
begin
sctx := string_agg_type(null);
return ODCIConst.Success;
end;
member function ODCIAggregateIterate(self IN OUT string_agg_type,
value IN varchar2) return number is
begin
self.total := self.total || ',' || value;
return ODCIConst.Success;
end;
member function ODCIAggregateTerminate(self IN string_agg_type,
returnValue OUT varchar2,
flags IN number) return number is
begin
returnValue := ltrim(self.total, ',');
return ODCIConst.Success;
end;
member function ODCIAggregateMerge(self IN OUT string_agg_type,
ctx2 IN string_agg_type) return number is
begin
self.total := self.total || ctx2.total;
return ODCIConst.Success;
end;
end;
依次创建上面三个方法,使用方法
select stragg(distinct t.id) id from tdgl_sinformation t;
这个代码是将数据库同一个字段的不同行的值进行拼接。用逗号隔开
分享到:
相关推荐
oracle拼接字符串查询语句。 普通拼接字符串和拼接某一列的所有值。
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。 比如执行下面的SQL语句: 代码如下:SELECT ‘工号为’||FNumber||’的员工姓名为’||FName FROM T_...
Oracle中分组后拼接分组字符串[文].pdf
* 超大字符串拼接,单个字符串4000、分隔符100,可拼出超4000的超长字符串 * 可自定义指定分隔符separator * 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000'...
Oracle中分组后拼接分组字符串.pdf
自定义聚集函数拼接字符串,根据网上常见的例子加以改进,可以自定义分隔符(利用的自定义type)。
Oracle接收长度大于4000的字符串 Oracle接收长度大于4000的字符串
NULL 博文链接:https://czjxdm.iteye.com/blog/466948
主要介绍了Mybatis 中 Oracle 的拼接模糊查询及用法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
1.被集合字段范围小且固定型 灵活性 性能 难度 2.固定表固定字段函数法 灵活性 性能 难度 3.灵活表函数法 灵活性 性能 难度 4.一条SQL法 灵活性
怎么合并多行记录的字符串,一直是oracle新手喜欢问的SQL问题之一,关于这个问题的帖子我看过不下30个了,现在就对这个问题,进行一个总结。
Oracle字符串如何连接单引号 写了个存储过程,需要在字符串变量前后加单引号。貌似简单的事情折腾了我一下午,好在天无绝人之路。终于被我弄明白甲骨文的变态规则。 Oracle字符串连接单引号: 1.首尾单引号为...
Oracle多行记录合并/连接/聚合字符串的几种方法
oracle存储过程中入参是逗号分隔,并且参数要使用在in过滤语句中查询数据。处理的方法与实现
Oracle中SQL语句连接字符串的符号为|| 代码如下: select catstr(tcdm) || (‘,’) from T_YWCJ_RWCJR where cjrjh=’009846′ and rwid=’12050′ and jsdm=’CJY’ 拼接成一条数据并连接一个”,” 您可能感兴趣的...
字符串函数,数学函数,日期函数,逻辑运算函数,其他函数
Oracle日期与时间拼接函数以及时间处理函数- -干货 1.时间处理函数 在工作过程中是否有遇到源数据的时间存储为Integer类型的时间格式,如下: 序号 T_TIME_1 1 63272 2 55066 3 55975 4 31394 5 ...
项目中有涉及存储过程对字符串的处理,所以就将在网上查找到的资料汇总,做一个信息拼接式的总结。
Oracle 一次请求执行多条sql语句 在.net 中查询Sql Server 一次请求执行多条sql语句很简单 拼接起来就好了 ...还有一种就是很简单的拼接字符串的方法 语法略微和sql server有些区别 适合新手学习