求一个function,传入两个number型的数,返回两数相除的百分率,能精确到小数点后两位比如
传入1,7  ,返回14.29%
谢谢!

解决方案 »

  1.   

    SQL> set serveroutput on
    SQL> CREATE OR REPLACE FUNCTION percent (a in number, b in number)
      2     RETURN VARCHAR2
      3  IS
      4     result   VARCHAR2 (4000);
      5  BEGIN
      6     result := trunc(a/b, 4) * 100 || '%';
      7     RETURN result;
      8  END;
      9  /Function created.SQL> declare
      2  v_ret varchar2(10);
      3  begin
      4    v_ret := percent(3, 7);
      5    dbms_output.put_line(v_ret);
      6  end;
      7  /
    42.85%PL/SQL procedure successfully completed.SQL>
      

  2.   

    也许用round效果更好,可以做到四舍五入,但这个函数有个问题,在除数过大的情况下就返回零了。
    不过还是谢谢你。