У меня есть следующая задача:
«Напишите процедуру« Печать родных братьев и сестер »(p person), которая имеет в качестве входных данных имя или идентификатор человека из схемы семейного дерева и, в результате, выводит список братьев и сестер».
Таблица отношений, которая содержит информацию о преемнике (Nachfolger) и предшественнике (Vorgänger) человека.
Таблица отношений
Моя процедура следующая:
create or replace procedure PrintSiblings4(p_Person varchar2)
is
cursor c_geschwister is select nachfolger
from relations
where nachfolger != p_Person and vorgänger =
(select vorgänger from relations
Where nachfolger = p_Person and rownum = 1) ;
v_geschwister c_geschwister%rowtype;
begin
open c_geschwister;
loop
fetch c_geschwister into v_geschwister;
exit when c_geschwister%NOTFOUND;
dbms_output.put_line('geschwister' || v_geschwister);
end loop;
end;
Я получаю следующие сообщения об ошибках от sqldeveloper, если я скомпилирую процедуру:
Ошибка (14,22): PLS-00306: неверное количество или типы аргументов в
позвонить '||'
Я не могу понять, почему это не работает. Я использовал явный курсор для решения проблемы, когда получаю более 1 строки, но она не работает.