oracle 绑定变量的用法

1.前言。
oracle10g后,使用绑定变量更能提高效率。
以下转自http://www.educity.cn/develop/555687.html的文章。

让Oracle自己绑定变量

  set serverout on;

  set timing on;

  declare

  l_sql varchar();

  l_count number;

  l_param varchar();

  l_param varchar();

  begin

  l_param:=a;

  l_param:=b;

  select count(*) into l_count from table where col_=l_param and col_=l_param;

  dbms_outputput_line(l_count);

  end;

  /

  在上面的情况Oracle会自己绑定变量即如果参数保存在一个数组中select语句放在一个循环中

  select 语句只会编译一次

  像这样

  for i in

  loop

  select count(*) into l_count from table where col_=l_param and col_=l_param and col_=i;

  dbms_outputput_line(l_count);

  end loop

  不绑定变量

  set serverout on;

  set timing on;

  declare

  l_sql varchar();

  l_count number;

  l_param varchar();

  l_param varchar();

  begin

  l_param:=a;

  l_param:=b;

  l_sql:=select count(*) into :x from table where col_=||l_param|| and col_=||l_param;

  Execute Immediate l_sql into l_count;

  dbms_outputput_line(l_count);

  end;

  /

  动态绑定变量

  set serverout on;

  set timing on;

  declare

  l_sql varchar();

  l_count number;

  l_param varchar();

  l_param varchar();

  begin

  l_param:=a;

  l_param:=b;

  l_sql:=select count(*) into :x from table where col_=:y and col_=:z ;

  Execute Immediate l_sql into l_count using l_paraml_param;

  dbms_outputput_line(l_count);

  end;

  /

  :x:y:z相当于占位符即

  用:p:p:p是一样的

  用:x:x:x也是一样的

  需要的绑定变量按顺序排在执行语句后面就可以了into的除外

  不过还是用pp好些至少可以看出绑定了多少个变量


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值