为什么ORACLE存储过程中 order by 会排序失败?

create or replace procedure sp_qry_emp(vc_job_i     varchar2,
                                       l_deptno_i   number,
                                       vc_orderby_i varchar2,
                                       ref_cur      out sys_refcursor) is

begin
  open ref_cur for
    select *
      from emp_bak1
     where (job = vc_job_i or vc_job_i is null)
       and (deptno = l_deptno_i or l_deptno_i is null)
     order by vc_orderby_i;

end sp_qry_emp;

调试信息:

结果没有按照sal排序,为什么呀,各路大神,求解答

因为通过入参输入的不会当成表的字段处理,而是当作一个值,要想实现按入参排序,就要用动态sql拼接