当前位置: 代码迷 >> Oracle技术 >> oracle 存储过程参数与变量的有关问题
  详细解决方案

oracle 存储过程参数与变量的有关问题

热度:45   发布时间:2016-04-24 08:26:06.0
oracle 存储过程参数与变量的问题
借保地提一个小弟碰到的一个奇怪的问题。
问题如下:
create or replace produre a(id in varchar2) is
r1 number;
r2 number;
r3 number;
tmp varchar2(20);
sqlstr varchar2(200);
begin
 tmp:=id;
 select count(1) into r1 from t1 where t1.id=id;
 select count(2) into r2 from t1 where t1.id=tmp;
 sqlstr:='select count(2) from t1 where t1.id=:tmp';
 execute immediate sqlstr into r3 using id;
end;

程序运行结果如下:
r2,r3等于实际满足条件的行数
r1却始终等于表内数据的总行数

测试环境为:oracle10G
那位达人能解释一下吗?存储过程输入参数和内部的变量有什么区别呢(不要只说一个只读之类哈)?

------解决方案--------------------
SQL code
--這句話的意思最後的id系統會認為是列的id,而不是你參數的id--你把參數換為p_id就不會是所有的了select count(1) into r1 from t1 where t1.id=id;
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/search?q=177537
  相关解决方案