Я хочу использовать курсор для циклического прохождения цепочки управленческой отчетности с использованием Connect By Prior из Oracle. Затем порядок меняется на обратный, поэтому VP вверху, а запись, с которой я начал, внизу (A.Corpid).
вверху есть курсор C1, который извлекает труп, следуя определенным критериям
Каждое каноническое имя, возвращаемое из этой таблицы (скажем, если в нем 6 строк), которое я хочу сохранить в определенных переменных TIER1, TIER2, TIER3.
Почему-то я не могу понять, как объединить слово 'TIER' с номером строки i
DECLARE
cursor c1 is
select distinct corpid, cn from Mytable where Country ='ITA';
master varchar2(50);
Tier1 varchar2(50);
Tier2 varchar2(50);
Tier3 varchar2(50);
Tier4 varchar2(50);
Tier5 varchar2(50);
Tier6 varchar2(50);
Tier7 varchar2(50);
Tier8 varchar2(50);
Begin
for rec in c1
loop
dbms_output.put_line(rec.cn);
DECLARE
Cursor C2 is
SELECT CN FROM Mytable A CONNECT BY PRIOR A.reportsto=A.corpid
START WITH A.corpid=rec.corpid
order by rownum desc;
Begin
open C2;
for i in 1..8 loop
fetch C2 into master;
dbms_output.put_line(master);
'Tier'||to_char(i)) :=master ;
end loop;
end;
if TIER1 is null then
TIER1:='';
end if;
*/ remmed out until the variable assignments work */
-- update mytable set VP_TIER1=TIER1 where corpid=rec.corpid;
end loop;
end;
Оракул жалуется на '||'
(ORA-06550: строка 33, столбец 31:
PLS-00103: обнаружен символ "|" при ожидании одного из следующих:
знак равно (@%;
)
Я тоже пытался примириться, но это тоже не сработало
ORA-06550: строка 33, столбец 26:
PLS-00306: неверный номер или типы аргументов при вызове 'CONCAT'