 |
|
Griboed0ff |
16-02-2022 11:05 2980161 |
PL/SQL результат цикла записать во временную таблицу
Доброго времени суток!
Пытаюсь из цикла получить данные в виде таблицы, как если бы это был простой select, но пока получается вывести данные в виде текста в ответе.
описание
Требуется в столбце с ошибками, посчитать сколько каждой ошибки и вывести данные в табличном виде.
Я нашел все уникальные ошибки в столбце; в цикле посчитал сколько каждой;
Код:
DECLARE
rrrr rta.list.request_id%TYPE;
begin
dbms_output.enable (buffer_size => NULL);
FOR jj IN (select distinct result_detail from rta.list where system_date>='16.02.2022' and operation_error='ERROR')
loop
select count(result_detail) into rrrr from rta.list where result_detail=jj.result_detail and system_date>='16.02.2022';
dbms_output.put_line(rrrr||'::::'||jj.result_detail);
end loop;
end;
ответ
1365::::ERROR:500
219::::ERROR:400
8416::::ERROR:11
223::::ERROR:138
Не могу придумать как записывать эти данные во временную таблицу, чтобы ответом на весь скрипт была таблица с данными, а не тест в консоли.
Требуется это для передачи полученной таблицы скрипту powershell и дальнейшей обработки. Просто как-нибудь поймать вывод без таблицы в powershell не могу.
|
Griboed0ff |
16-02-2022 12:52 2980176 |
смог записать во временную таблицу, но не удается никуда после цикла вставить select, чтобы ответом на скрипт была таблица
Код:
drop table qqqqqqq;
create global temporary table qqqqqqq
( ncount number,
rerror varchar (1000))
on commit delete rows;
DECLARE
rrrr rta.list.request_id%TYPE;
begin
dbms_output.enable (buffer_size => NULL);
FOR jj IN (select distinct result_detail from rta.list where system_date>='16.02.2022' and operation_error='ERROR')
loop
select count(result_detail) into rrrr from rta.list where result_detail=jj.result_detail and system_date>='16.02.2022';
Insert into qqqqqqq(ncount,rerror) values (rrrr,jj.result_detail);
--dbms_output.put_line(rrrr||'::::'||jj.result_detail);
end loop;
end;
--select * from qqqqqqq;
после end не удается вставить, а до требуется вставить в select into, который мне не нужен.
|
Griboed0ff |
03-03-2022 13:49 2981063 |
Оказалось все просто:
Код:
drop table qqqqqqq;
create global temporary table qqqqqqq
( ncount number,
rerror varchar (1000))
on commit delete rows;
DECLARE
rrrr rta.list.request_id%TYPE;
begin
dbms_output.enable (buffer_size => NULL);
FOR jj IN (select distinct result_detail from rta.list where system_date>='16.02.2022' and operation_error='ERROR')
loop
select count(result_detail) into rrrr from rta.list where result_detail=jj.result_detail and system_date>='16.02.2022';
Insert into qqqqqqq(ncount,rerror) values (rrrr,jj.result_detail);
--dbms_output.put_line(rrrr||'::::'||jj.result_detail);
end loop;
end;
/
select * from qqqqqqq;
Почему-то нигде не написано, что нужен слеш между end и следующей командой.
|
Время: 11:38.
© OSzone.net 2001-