动态绑定

Adebayor 2010-03-02 08:07:24
函数名可以作为参数进行动态绑定吗
可以的话 帮忙举个例子
谢了
...全文
191 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adebayor 2010-03-08
  • 打赏
  • 举报
回复
真的就不可以了吗。。。。。?
pobaby 2010-03-03
  • 打赏
  • 举报
回复
可以的。
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>



这样不就实现了。

呵呵~

引用楼主 adebayor 的回复:
函数名可以作为参数进行动态绑定吗
可以的话 帮忙举个例子
谢了
Phoenix_99 2010-03-03
  • 打赏
  • 举报
回复
经测试,PL/SQL中不可以
碧水幽幽泉 2010-03-03
  • 打赏
  • 举报
回复
引用楼主 adebayor 的回复:
函数名可以作为参数进行动态绑定吗

不可以
shiyiwan 2010-03-03
  • 打赏
  • 举报
回复
测试结果:PL/SQL中不可以
zhangwonderful 2010-03-03
  • 打赏
  • 举报
回复
不可以使用动态函数名
iqlife 2010-03-03
  • 打赏
  • 举报
回复
可以的吧,表名都可以,何况是函数名呢
Adebayor 2010-03-03
  • 打赏
  • 举报
回复
引用 9 楼 pobaby 的回复:
可以的。
Eg:
依 round 函数为例。如下

呵呵 不是的 这个只是过程中的参数名动态
我的目的是想让过程名来个动态
Adebayor 2010-03-03
  • 打赏
  • 举报
回复
引用 6 楼 shiyiwan 的回复:
测试结果:PL/SQL中不可以

哈哈 和我的测试结果是一样的!

看看还有没有其他的高见............
Adebayor 2010-03-02
  • 打赏
  • 举报
回复
引用 2 楼 suiziguo 的回复:
看见过很多很多这样的例子。


想说句——————


既然动态绑定,说明不是纯SQL,而是PL/SQL,在包/过程/函数里,可以直接调用其他过程/函数,如果连过程/函数都需要动态调用,首先应该检查业务逻辑。


描述下业务逻辑?我很好奇!

谢谢!

呵呵 分析的很有道理呀

不过这个只是随便想的

公司做的东西吗 都比较规范 没这么变态 哈哈
suiziguo 2010-03-02
  • 打赏
  • 举报
回复
看见过很多很多这样的例子。


想说句——————


既然动态绑定,说明不是纯SQL,而是PL/SQL,在包/过程/函数里,可以直接调用其他过程/函数,如果连过程/函数都需要动态调用,首先应该检查业务逻辑。


描述下业务逻辑?我很好奇!

谢谢!
shiyiwan 2010-03-02
  • 打赏
  • 举报
回复
不确定,明天去公司测试一下

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧