Полный новичок в PL/SQL
Предположим, у меня есть 2 таблицы,
Один REGION(R_KEY, R_NAME)
и еще один с именем NATION(N_KEY, N_NAME, N_REGIONKEY)
, где N_REGIONKEY
соответствует значению в R_KEY
пример в REGION
у нас есть
╔═══════╦════════════════╗
║ R_KEY ║ R_Name ║
╠═══════╬════════════════╣
║ 0 ║ AFRICA ║
║ 1 ║ SOUTHEAST ASIA ║
║ 2 ║ EUROPE ║
╚═══════╩════════════════╝
и в NATION
╔═══════╦═══════════╦═════════════╗
║ N_KEY ║ N_NAME ║ N_REGIONKEY ║
╠═══════╬═══════════╬═════════════╣
║ 0 ║ INDONESIA ║ 1 ║
║ 1 ║ LONDON ║ 2 ║
║ 2 ║ FRANCE ║ 2 ║
║ 3 ║ KENYA ║ 0 ║
╚═══════╩═══════════╩═════════════╝
Я хочу создать функцию, которая может принимать имя региона в качестве параметра, а затем перечислять все страны в этом регионе.
я пытался
create or replace function LISTNATION(regionName IN region.r_name%type)
return varchar2
IS
result varchar2(500)
begin
for aRow IN (select r_key, r_name, n_name
from nation n, region r
where n_regionkey = r_Key
and r_key = regionKey)
loop
result := result || aRow.name || ', ';
end loop;
return result;
end LISTNATION;
но это вернуло ошибку компиляции
Почему возникает эта ошибка компиляции, и можем ли мы в любом случае получать уведомления о том, какая часть нашего кода вызывает эти ошибки?
Спасибо