какой-то неправильный код у меня...

LolaS
Дата: 20.11.2008 10:27:40
добрый день,

подскажите кто-нить где у мя здесь ошибка и как исправить?

из этой таблицы

CREATE TABLE TEST(dep_id NUMBER, id NUMBER, name VARCHAR2(100), name_sub VARCHAR2(400));
INSERT into TEST(dep_id, id, name, name_sub ) VALUES(613,1, 'ТОО Тест', 'Иванов');
INSERT into TEST(dep_id, id, name, name_sub ) VALUES(613,1, 'ТОО Тест', 'Петров');
INSERT into TEST(dep_id, id, name, name_sub ) VALUES(613,1, 'ТОО Тест', 'Сафонов');
INSERT into TEST(dep_id, id, name, name_sub ) VALUES(615,2, 'ТОО Атланта', '111');
INSERT into TEST(dep_id, id, name, name_sub ) VALUES(615,2, 'ТОО Атланта', '222');
select * from test;


получить эту
CREATE TABLE TEST2(dep_id NUMBER,id NUMBER, name VARCHAR2(100), name_sub VARCHAR2(400));
вида
613,1,ТОО Тест, Иванов-Петров-Сидоров
613,1,'ТОО Атланта, 111-222

declare
s VARCHAR2(400);

cursor t1 is
select dep_id, id from test group by dep_id,id;

cursor t2 (dep_idx NUMBER, idx NUMBER) is
select name, name_sub from test where dep_id=dep_idx and id=idx ;


begin

FOR rec IN t1 LOOP
s:='';
FOR rec2 IN t2(rec.dep_id, rec.id) LOOP
s:= s || rec2.name_sub
END LOOP;
s:=rtrim(s,' ');
s:=rtrim(s,',');
INSERT into TEST2(dep_id,id, name, name_sub ) VALUES(rec.dep_id,rec.id, rec2.name, s);

END LOOP;

end;
/

select * from test2;
Elic
Дата: 20.11.2008 10:30:08
Когда Сафонов успел поменять паспорт?
реплика
Дата: 20.11.2008 10:30:43
LolaS,

приведите результат последнего селекта и пользуйтесь тегами SRC и CSV, пожалуйста.
jan2ary
Дата: 20.11.2008 10:34:58
Elic
Когда Сафонов успел поменять паспорт?

Почему Володька сбрил усы?
Elic
Дата: 20.11.2008 10:39:55
jan2ary
Elic
Когда Сафонов успел поменять паспорт?
Почему Володька сбрил усы?
Точно :)
Добрый Э - Эх
Дата: 20.11.2008 10:48:28
LolaS
Дата: 20.11.2008 10:57:28
Добрый Э - Эх
Тынц


пасиба