您的位置:首页 > 其它

聚合拼接字符串的方法

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: