Det handlar om de där "fantastiska" enstaka citaten du använde här:
DBMS_OUTPUT.PUT_LINE('Department Names are :' || DEPARTMENT_NAME);
borde vara
DBMS_OUTPUT.PUT_LINE('Department Names are :' || DEPARTMENT_NAME);
Som för andra "fel" du har gjort:utan en loop , returnerar markören endast en rad och du visar den sedan. Jag skulle föreslå att du byter till en markör för loop eftersom det är enklare att underhålla:
begin
for cur_r in (select department_name from department) loop
dbms_output.put_line(cur_r.department_name);
end loop;
end;
/
Detta är allt du behöver; ingen deklarationssektion, ingen öppning eller stängning av en markör, ingen oro för att lämna loopen ... Oracle gör det åt dig.