函数名可以作为参数进行动态绑定吗
可以的话 帮忙举个例子
谢了

解决方案 »

  1.   

    看见过很多很多这样的例子。
    想说句——————
    既然动态绑定,说明不是纯SQL,而是PL/SQL,在包/过程/函数里,可以直接调用其他过程/函数,如果连过程/函数都需要动态调用,首先应该检查业务逻辑。
    描述下业务逻辑?我很好奇!谢谢!
      

  2.   

    可以的。
    Eg:
    依 round 函数为例。如下一、创建过程。CREATE OR REPLACE PROCEDURE TESTHANSHU(TEST_FUN IN VARCHAR2) IS  /*---游标定义--------------------------*/  N_T   VARCHAR2(255);
      T_NUM NUMBER(8, 2) := 0;
    BEGIN
      N_T := 'select ' || TEST_FUN || '(123.6546,2) from dual';
      EXECUTE IMMEDIATE N_T
        INTO T_NUM;
      DBMS_OUTPUT.PUT_LINE('Result : ' || T_NUM);
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Result : ' || N_T || SQLERRM);
    END TESTHANSHU;二、执行
    SQL> set serveroutput on;
    SQL> exec TESTHANSHU('round');
     
    Result : 123.65
     
    PL/SQL procedure successfully completed
     
    SQL> 
    这样不就实现了。呵呵~