借保地提一个小弟碰到的一个奇怪的问题。
问题如下:
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
那位达人能解释一下吗?存储过程输入参数和内部的变量有什么区别呢(不要只说一个只读之类哈)?