借保地提一个小弟碰到的一个奇怪的问题。
问题如下:
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
那位达人能解释一下吗?存储过程输入参数和内部的变量有什么区别呢(不要只说一个只读之类哈)?
问题如下:
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,把每个id对应的最大created日期的记录筛选出来。
- oracle SQL developer启动问题 在线等
- 菜鸟上树。。。咋办?
- 如何取消oracle与系统的认证关联??
- 关于ORACLE的utl_file包的资料
- 请高手进来看下如何解决这样的问题?
- system帐号中的users表能否手工重建????
- oracle本来用的挺好的,后来连接出现了无法解析连接描述符中制定的SID
- 如何对oracle集群的存储磁盘空间在线扩展?
- LIBTUX_CAT:607: ERROR: Cannot open section _MACHINES_SECT of the TUXCONFIG: -1
- oracle以前的数据怎么导入到现在的oracle中
--這句話的意思最後的id系統會認為是列的id,而不是你參數的id
--你把參數換為p_id就不會是所有的了
select count(1) into r1 from t1 where t1.id=id;