聚合拼接字符串的方法
2011-10-31 13:11
393 查看
Oracle-sql中创建聚合字符串函数:
(测试过,可以使用。子表某一列所有内容拼接成一个字符串,以逗号分隔)
首先要为子表赋权限:
Oracle-command中输入(要在system用户下):grant select , insert ,update on 表名 to 用户;
A:一个关联键
create or replace function PUBLIC_TOGETHER( key_name in varchar2,
key in varchar2,
coname in varchar2,
tname in varchar2 )
return varchar2
as
type rc is ref cursor;
str varchar2(4000);
sep varchar2(2);
val varchar2(4000);
cur rc;
begin
open cur for 'select '||coname||'
from '|| tname || '
where ' || key_name || ' = :x '
using key;
loop
fetch cur into val;
exit when cur%notfound;
str := str || sep || val;
sep := ', ';
end loop;
close cur;
return str;
end;
B: 三个关联键
create or replace function TOGETHER_THREE_PARAM( key1_name in varchar2,
key1 in varchar2,
key2_name in varchar2,
key2 in varchar2,
key3_name in varchar2,
key3 in varchar2,
coname in varchar2,
tname in varchar2 )
return varchar2
as
type rc is ref cursor;
str varchar2(4000);
sep varchar2(2);
val varchar2(4000);
cur rc;
begin
open cur for 'select '||coname||'
from '|| tname || '
where ' || key1_name || ' = :x ' ||
'and ' || key2_name || ' = :y ' ||
'and ' || key3_name || ' = :z '
using key1,key2,key3;
loop
fetch cur into val;
exit when cur%notfound;
str := str || sep || val;
sep := ', ';
end loop;
close cur;
return str;
end;
(测试过,可以使用。子表某一列所有内容拼接成一个字符串,以逗号分隔)
首先要为子表赋权限:
Oracle-command中输入(要在system用户下):grant select , insert ,update on 表名 to 用户;
A:一个关联键
create or replace function PUBLIC_TOGETHER( key_name in varchar2,
key in varchar2,
coname in varchar2,
tname in varchar2 )
return varchar2
as
type rc is ref cursor;
str varchar2(4000);
sep varchar2(2);
val varchar2(4000);
cur rc;
begin
open cur for 'select '||coname||'
from '|| tname || '
where ' || key_name || ' = :x '
using key;
loop
fetch cur into val;
exit when cur%notfound;
str := str || sep || val;
sep := ', ';
end loop;
close cur;
return str;
end;
B: 三个关联键
create or replace function TOGETHER_THREE_PARAM( key1_name in varchar2,
key1 in varchar2,
key2_name in varchar2,
key2 in varchar2,
key3_name in varchar2,
key3 in varchar2,
coname in varchar2,
tname in varchar2 )
return varchar2
as
type rc is ref cursor;
str varchar2(4000);
sep varchar2(2);
val varchar2(4000);
cur rc;
begin
open cur for 'select '||coname||'
from '|| tname || '
where ' || key1_name || ' = :x ' ||
'and ' || key2_name || ' = :y ' ||
'and ' || key3_name || ' = :z '
using key1,key2,key3;
loop
fetch cur into val;
exit when cur%notfound;
str := str || sep || val;
sep := ', ';
end loop;
close cur;
return str;
end;
相关文章推荐
- golang大量字符串拼接方法
- 字符串的拼接方法
- PHP方法字符串拼接转化mysql进行数据查询
- Oracle多行记录合并/连接/聚合字符串的几种方法
- JavaScript字符串数组拼接的性能测试及优化方法
- js两种拼接字符串方法
- Oracle多行记录合并/连接/聚合字符串的几种方法
- Python字符串拼接的几种方法
- Java中三种方法拼接字符串时间比较
- Oracle多行记录合并/连接/聚合字符串的几种方法
- C++中拼接一个包含整型等类型字符串的方法
- EL中拼接字符串的方法
- 字符串拼接 的 方法
- 字符串的常用方法—拼接字符串
- Python日记1--打印方法,循环语句,条件语句,字符串拼接
- Python字符串拼接的6种方法(转)
- IOS字符串拼接方法小结
- java拼接字符串时去掉最后一个多余逗号的方法
- Oracle中将查询出的多条记录的某个字段拼接成一个字符串的方法