2024-10-17 08:00:43
首先,oracle中有存放表名的系统表,所以你那个tcmz有点多余
declare
v_tablename varchar2(60);
v_count int;
v_sql varchar2(2000);
cursor cur_tablename is
select table_name from user_tables;
begin
open cur_tablename;
loop
fetch cur_tablename into v_tablename;
exit when cur_tablename%notfound;
v_sql:='select count(*) from '||v_tablename||'';
execute immediate v_sql into v_count;
dbms_output.put_line(v_tablename||':'||v_count);
end loop;
close cur_tablename;
end;
如果非要用你那个的话,可以这样改
declare
v_tablename varchar2(60);
v_count int;
v_sql varchar2(2000);
cursor cur_tablename is
select 表名 from tcmz;--字段名你替换成你自己的
begin
open cur_tablename;
loop
fetch cur_tablename into v_tablename;
exit when cur_tablename%notfound;
v_sql:='select count(*) from '||v_tablename||'';
execute immediate v_sql into v_count;
dbms_output.put_line(v_tablename||':'||v_count);
end loop;
close cur_tablename;
end;
2024-10-17 09:59:41