select a.table_name,comments, xw_count_rows(a.table_name) nrows , '/*'||b.comments||'*/ '|| 'truncate table ' || a.table_name || ';' as sql_text
from user_tables a,all_tab_comments b where a.table_name = b.table_name and a.table_name like 'T%' and xw_count_rows(a.table_name) > 0
order by xw_count_rows(a.table_name) desc;
/* ----函数传入表名,获取表count
create or replace function xw_count_rows(table_name in varchar2,
owner in varchar2 default null)
return number authid current_user IS
num_rows number;
stmt varchar2(2000);
begin
if owner is null then
stmt := 'select count(*) from "' || table_name || '"';
else
stmt := 'select count(*) from "' || owner || '"."' || table_name || '"';
end if;
execute immediate stmt
into num_rows;
return num_rows;
end;
*/