Unfortunately, you can't just:
select *
into r_emp
from emp
where empno = :new.empno;
without running into mutating table issues. The only alternative is to:
r_emp.empno := :new.empno;
r_emp.ename := :new.ename;
...
r_emp.deptno := :new.deptno;
and then:
You are passing one parameter to the proc, but even then have had to assign each of the columns specifically. So, you won't be able to avoid the column references in either approach, the other obviously being:
some_proc(:new.empno, :new.ename, ...);