跪求一个储存过程写法!!望大虾给个写法

sxgyzjf 2011-08-29 02:44:03
[color=#0000FF]想要实现的功能:
过程传入参数:一个表名
然后得到此表中的记录数count 输出dbms_output.put_line(count)
不知道是否可以写为过程。
??[/color]
...全文
98 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxgyzjf 2011-08-29
  • 打赏
  • 举报
回复
谢谢了 呵呵 明白!!
lbq794619111 2011-08-29
  • 打赏
  • 举报
回复
create or replace procedure getcount(table_name in varchar2) as
num number;
sql_state varchar2(300);
begin
sql_state := 'select count(*) from '||table_name;
execute immediate sql_state into num;
dbms_output.put_line(num);
end;
hanzs 2011-08-29
  • 打赏
  • 举报
回复
你的tablename是变量,不能直接用在select from后面,只能通过动态SQL来执行
sxgyzjf 2011-08-29
  • 打赏
  • 举报
回复


create or replace procedure calCounts(tablename char)
as
counts number;
begin
select count(*) into counts from tablename;
dbms_output.put_line(counts);
end calCounts;

我写成这样子 不行?? 和你的区别在于哪里?
yixilan 2011-08-29
  • 打赏
  • 举报
回复
同意:
create or replace procedure sp_test(i_tablename in varchar2)
as
iRowcount int;
begin
execute immediate 'select count(*) from '||i_tablename into iRowCount;
dbms_output.put_line(iRowCount);
end;
hanzs 2011-08-29
  • 打赏
  • 举报
回复

create or replace procedure sp_test(i_tablename in varchar2)
as
iRowcount int;
begin
execute immediate 'select count(*) from '||i_tablename into iRowCount;
dbms_output.put_line(iRowCount);
end;

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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