函数名可以作为参数进行动态绑定吗
可以的话 帮忙举个例子
谢了
可以的话 帮忙举个例子
谢了
解决方案 »
- 错误listener does not currently know of service requested in connect descriptor
- ORACLE里如何把0701111101变成2007-01-11 11:01
- 大家好,请问关于Oracle的“时间类型”是怎样的?
- 一个动态sql的问题(半小时结贴)
- 想通过Oracle Enterprise Manager Console(我是Oracle9i) 实现数据的导入/导出,并已建立了资料库,可是我登录到OMS后,却。。。
- * 和 ?有什么作用和区别,在取数据的时候!
- 帮帮忙,“超出打开游标的最大数”的异常是怎么回事,怎么改?
- 怎样写
- 请教:如何在oracle下批量创建数据库?
- 怎么访问别人的表,各位帮帮忙!!
- ALL_OBJECTS权限问题
- 求oracle存储过程报错“读取违反顺序”解决办法
想说句——————
既然动态绑定,说明不是纯SQL,而是PL/SQL,在包/过程/函数里,可以直接调用其他过程/函数,如果连过程/函数都需要动态调用,首先应该检查业务逻辑。
描述下业务逻辑?我很好奇!谢谢!
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>
这样不就实现了。呵呵~