关于存储过程里COUNT总数

czb 2004-12-31 07:11:49
create or replace procedure testproc005 as
l_count number;
l_sql varchar2(1024);
begin
l_sql:='select count(*) into l_count from aaatbl';
dbms_output.put_line('l_sql='||l_sql);
execute immediate l_sql; --这句执行不成功
dbms_output.put_line(to_char(l_count));
commit;
end;

如何才能count到aaatbl'的总数?
注:不能直接调用select count(*) into l_count from aaatbl。

...全文
331 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
czb 2004-12-31
  • 打赏
  • 举报
回复
谢谢ATGC(想到南极去看看飞翔的海鸥),终于可以了

我另外加了一个类似的查询语句,后面拼凑的条件不变,但查询的前面变了。由l_sql:='select * from aaatbl where ...'变为l_sql:='select count(*) from aaatbl where ...';

baojianjun(包子):这个很有必要,因为这个是用在分页操作的,客户端必须知道查询出来的结果总数。
baojianjun 2004-12-31
  • 打赏
  • 举报
回复
個人覺得沒有意義

樓主是想得到對於某一個操作語句所設計的數據記錄個數嗎?
czb 2004-12-31
  • 打赏
  • 举报
回复
不用游标打开,有办法吗?
czb 2004-12-31
  • 打赏
  • 举报
回复
对不起ATGC(想到南极去看看飞翔的海鸥):
我刚开又仔细看了原始信息,原始信息应该类似下面的;
create or replace procedure testproc005 as
l_count number;
l_sql varchar2(1024);
begin
l_sql:='select * from aaatbl'; --如何求出这个结果集的条数?
dbms_output.put_line('l_sql='||l_sql);
execute immediate l_sql into l_count;
dbms_output.put_line(l_count);
end;
czb 2004-12-31
  • 打赏
  • 举报
回复
ATGC(想到南极去看看飞翔的海鸥):

谢谢你的回复,不过我的SQL语句都是拼凑出来的,所以不能直接调用select count(*) into l_count from aaatbl,这里只是举了个简单的例子而已,有什么别的好办法获得总数吗?
ATGC 2004-12-31
  • 打赏
  • 举报
回复
这里完全可以不用动态SQL
create or replace procedure testproc005 as
l_count number;
l_sql varchar2(1024);
begin
select count(*) into l_count from aaatbl;
dbms_output.put_line(l_count);
end;
/
ATGC 2004-12-31
  • 打赏
  • 举报
回复
create or replace procedure testproc005 as
l_count number;
l_sql varchar2(1024);
begin
l_sql:='select count(*) from aaatbl';
dbms_output.put_line('l_sql='||l_sql);
execute immediate l_sql into l_count; --这句执行不成功
dbms_output.put_line(l_count);
end;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧