select department_name, subdepartment_name
WHEN NO_DATA_FOUND THEN
WHEN UTL_FILE.INVALID_PATH THEN
WHEN UTL_FILE.READ_ERROR THEN
1) You don't need a cursor on the table.
2) You need to open the file, read the first line and declare a while loop that exits when you get no data found.
3) Inside the above loop do an update that updates the table if the records are newer.
4) close the file
5) include an exception section that closes the file and reraises any error.
If you really want to learn PL/SQL get a good PL/SQL book and write the procedure. Doing is the best form of learning.
1)create a table called sop-t table
2)load the records into this table
3)write your insert statement as follows
insert into sop_employee
select department_name,subdepartment_name ,employee_id from sop_employee
select department_name,subdepartment_name ,employee_id from sop-t