Oracle вложенный тип данных в виде плоского файла - PullRequest
1 голос
/ 25 октября 2011

Это скрипт для создания набора данных вложенной таблицы:

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;

Чего я хочу добиться, так это создать плоский выходной текстовый файл. Однако результат использования вложенного столбца в виде плоского файла является неожиданным при использовании графического интерфейса разработчика SQL. Формат файла вывода следующий при экспорте данных в виде текста:

"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 (« and »)» на пустую строку?

1 Ответ

0 голосов
/ 28 октября 2011

Если вам обязательно нужно использовать команду collect, вы можете создать функцию, как показано в этой ссылке .

Если нет, вы можете использовать wm_concat :

select d.id, 
       wm_concat(d.description)
       nested_column 
from 
       descriptions d
group by id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...