ORACLE怎么把查询出来的结果集的每条记录的每一列用逗号分隔,一条记录完后用分号分隔
查询语句:selectbif_code,namefromBIS_BIF_INIT表结构:bif_codename9040中国工商银行9008光大银行9005中国农业银行效...
查询语句:
select bif_code,name from BIS_BIF_INIT
表结构:
bif_code name
9040 中国工商银行
9008 光大银行
9005 中国农业银行
效果这样:
9005,交通银行;9040,中国工商银行;
谢谢各位大神
最后拼接成一条记录 展开
select bif_code,name from BIS_BIF_INIT
表结构:
bif_code name
9040 中国工商银行
9008 光大银行
9005 中国农业银行
效果这样:
9005,交通银行;9040,中国工商银行;
谢谢各位大神
最后拼接成一条记录 展开
3个回答
展开全部
首先,看你是想导出成文本,还是直接插表里
要是导出的话,用spool就行
你那个试试,用下面三句
spool e:\log.txt; (当然随便放什么地方,起什么名,路径对了就行)
select bif_code||','||name||';' from bis_bif_init;
spool off;
然后你去路径哪里找那个log.txt,里面就是你说那格式的,这格式可以调整
你要想放表里也行中间那句可以换成
select 'insert into bis_bif_init( 新列名 ) values(' ||bif_code|| ',' || name || ') where xxx;' from bis_bif_init;
就是说格式自己定,''中想加啥加啥用||连起来就行。同样去找txt,格式就是你定的那样。
-------------------------------------------------------------------------------------------
这是一种txt的,还有一个,如果你想在这个表的新列里直接显示加逗号那个格式的,也可以。就不用txt了,下次直接导出该列就行。但需要在表里加个列
alter table BIS_BIF_INIT add xxx(新列名字) char(100) generated always as (bif_code||','||name);
然后表里就有这个拼好的列,可能字符会很多,定大点
------------------------------------------------------------------------------------
最后一种,直接建个视图得了,省事,就一句话
create view vie_bis_bif_init as bif_code||','||name||';' from bis_bif_init;
要是导出的话,用spool就行
你那个试试,用下面三句
spool e:\log.txt; (当然随便放什么地方,起什么名,路径对了就行)
select bif_code||','||name||';' from bis_bif_init;
spool off;
然后你去路径哪里找那个log.txt,里面就是你说那格式的,这格式可以调整
你要想放表里也行中间那句可以换成
select 'insert into bis_bif_init( 新列名 ) values(' ||bif_code|| ',' || name || ') where xxx;' from bis_bif_init;
就是说格式自己定,''中想加啥加啥用||连起来就行。同样去找txt,格式就是你定的那样。
-------------------------------------------------------------------------------------------
这是一种txt的,还有一个,如果你想在这个表的新列里直接显示加逗号那个格式的,也可以。就不用txt了,下次直接导出该列就行。但需要在表里加个列
alter table BIS_BIF_INIT add xxx(新列名字) char(100) generated always as (bif_code||','||name);
然后表里就有这个拼好的列,可能字符会很多,定大点
------------------------------------------------------------------------------------
最后一种,直接建个视图得了,省事,就一句话
create view vie_bis_bif_init as bif_code||','||name||';' from bis_bif_init;
展开全部
select replace(wmsys.wm_concat(bif_code||','||name||';'),';,',';') from BIS_BIF_INIT;
这个函数你不一定有,它是建库时的其中一个关于wmsys的选项,如果没有,想想办法
这个函数你不一定有,它是建库时的其中一个关于wmsys的选项,如果没有,想想办法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,
环境:
SQL> create table bis_bif_init(bif_code integer,name varchar2(30));
SQL> insert into bis_bif_init values (9040,'China Bussiness Bank');
1 row created.
SQL> insert into bis_bif_init values (9002,'Germany BANK');
1 row created.
SQL> commit;
Commit complete.
脚本:
declare
i integer:=1;
string_out varchar2(10000):='';
type bbi_table_type is table of bis_bif_init%rowtype index by binary_integer;
v_bbi_table bbi_table_type;
begin
select bif_code,name bulk collect into v_bbi_table from bis_bif_init;
for i in 1..v_bbi_table.count loop
string_out:=string_out||v_bbi_table(i).bif_code||','||v_bbi_table(i).name||';';
end loop;
dbms_output.put_line(string_out);
end;
结果:
SQL> declare
i integer:=1;
2 3 string_out varchar2(10000):='';
4 type bbi_table_type is table of bis_bif_init%rowtype index by binary_integer;
5 v_bbi_table bbi_table_type;
6
7 begin
8 select bif_code,name bulk collect into v_bbi_table from bis_bif_init;
9 for i in 1..v_bbi_table.count loop
10 string_out:=string_out||v_bbi_table(i).bif_code||','||v_bbi_table(i).name||';';
11 end loop;
12 dbms_output.put_line(string_out);
13 end;
14 /
9040,China Bussiness Bank;9002,Germany BANK;
PL/SQL procedure successfully completed.
别忘记加上SQL> set serveroutput on
................
环境:
SQL> create table bis_bif_init(bif_code integer,name varchar2(30));
SQL> insert into bis_bif_init values (9040,'China Bussiness Bank');
1 row created.
SQL> insert into bis_bif_init values (9002,'Germany BANK');
1 row created.
SQL> commit;
Commit complete.
脚本:
declare
i integer:=1;
string_out varchar2(10000):='';
type bbi_table_type is table of bis_bif_init%rowtype index by binary_integer;
v_bbi_table bbi_table_type;
begin
select bif_code,name bulk collect into v_bbi_table from bis_bif_init;
for i in 1..v_bbi_table.count loop
string_out:=string_out||v_bbi_table(i).bif_code||','||v_bbi_table(i).name||';';
end loop;
dbms_output.put_line(string_out);
end;
结果:
SQL> declare
i integer:=1;
2 3 string_out varchar2(10000):='';
4 type bbi_table_type is table of bis_bif_init%rowtype index by binary_integer;
5 v_bbi_table bbi_table_type;
6
7 begin
8 select bif_code,name bulk collect into v_bbi_table from bis_bif_init;
9 for i in 1..v_bbi_table.count loop
10 string_out:=string_out||v_bbi_table(i).bif_code||','||v_bbi_table(i).name||';';
11 end loop;
12 dbms_output.put_line(string_out);
13 end;
14 /
9040,China Bussiness Bank;9002,Germany BANK;
PL/SQL procedure successfully completed.
别忘记加上SQL> set serveroutput on
................
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询