function mgrname(p_empno in emp.empno%type) return emp.ename%type is result emp.ename%type; i integer; begin result := null; i := 1; if p_empno is null then -- If empno is null, return an empty name result := null; else -- Fetch the name of the manager select m.ename into result from emp e, emp m where e.empno = p_empno and m.empno = e.mgr and d.deptno in (10,20,30,40); end if; return(result); exception when no_data_found then return(null); end; begin for emp_cursor in (select * from emp) loop if emp_cursor.mgr is null or emp_cursor.mgr = 0 then dbms_output.put_line('No manager'); else dbms_output.put_line('Manager = ' || to_char(emp_cursor)); end if; end loop; end; begin -- Select select depno as department_number, dname as departmen_name, loc as department_location from dept, emp where emp.empno = p_empno and dept.deptno = emp.deptno; -- Insert insert into dept (deptno, dname, loc) values (10, 'Accounting', 'New York'); -- Update update dept set dname = 'Accounting', loc = 'New York' where deptno = 10; end; procedure InsertDept(p_deptno in out dept.deptno%type, p_dname in dept.dname%type, p_loc in dept.loc%type) is begin -- Determine the maximum department number if necessary if p_deptno is null then select nvl(max(deptno), 0) + 1 into p_deptno from dept; end if; -- Insert the new record insert into dept (deptno, dname, loc) values (p_deptno, p_dname, p_loc); end; declare type dept_record is record (deptno number(2), dname varchar2(13), loc varchar2(13)); begin null; end;