如何用查询变量表中的记录数?

我想查询一个表的数据量,并插入到一个变量lv_num 中。
那么我用 SELECT count(1) INTO lv_num  FROM   tablename;这个语句即可,tablename为一个具体的表。

如果tablename 是一个varchar2变量,那么我觉得得用如下语句:
str := 'SELECT count(1) INTO lv_num '   ||' FROM ' || tablename;
execute immediate str ;
但是会报错,而且这样就不能 将表中的记录数赋予  lv_num。

如果tablename是varchar2变量这种情况我不知道该怎么办。有哪位老师同学知道吗?
标签: 暂无标签
bayannur

写了 8 篇文章,拥有财富 110,被 2 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2010-12-27 18:11:18
'SELECT count(1) ' INTO lv_num
回复

使用道具

P4 | 发表于 2010-12-27 18:21:23
回复 kevin.zhang 的帖子

str := 'SELECT count(1) '   || INTO lv_num   FROM   tablename;
execute immediate str ;
是这样吗?如果是这样会报错。ls能不能说详细一点,谢谢了!
回复

使用道具

P4 | 发表于 2010-12-28 16:17:03
问题解决了,方法如下:
    str := 'SELECT trunc(count(1)/'||dnum||') + 1 FROM  '|| tablename;
    EXECUTE IMMEDIATE str INTO lv_num;
    dbms_output.put_line(lv_num);
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈