2011-10-24 9 views
1

これは、ネストされたテーブルのデータセットを生成するスクリプトです:私が達成したい何Oracleのネストされたデータ型

create table descriptions(
id number, 
description varchar2(10) 
); 

insert into descriptions values(1,'abfd'); 
insert into descriptions values(1,'frte'); 
insert into descriptions values(2,'eewd'); 
insert into descriptions values(2,'outr'); 

create or replace type nt_description as table of varchar2(10); 
-- the following query produces a dataset to save as a flat file 
select id, cast(collect(description) as nt_description) as nested_column from descriptions group by id; 

は、平坦な出力txtファイルを生成することです。ただし、SQL Developer GUIを使用している場合、フラット・ファイルとしてネストされた列出力の結果は予期しないものになります。テキストとしてデータをエクスポートするときに、出力ファイルの形式は以下の通りです:

"ID" "NESTED_COLUMN" 
1 DBUSER.NT_DESCRIPTION('abfd','frte') 
2 DBUSER.NT_DESCRIPTION('eewd','outr') 

私が代わりにフォーマットの前の次の形式を取得したいと思います:

"ID" "NESTED_COLUMN" 
1 'abfd','frte' 
2 'eewd','outr' 

私は、テキストエディタを使って、それを達成することができますし、不要なデータを置換(notepad ++の助けを借りて)しますが、 "DBUSER.NT_DESCRIPTION("と ")"を空文字列で手動で置換することなく同じ結果を得ることは可能ですか?

答えて

0

collectを使用する必要がある場合は、linkのような機能を実行できます。

ない場合は、wm_concat使用することができます。

select d.id, 
     wm_concat(d.description) 
     nested_column 
from 
     descriptions d 
group by id; 
関連する問題