回覆列表
-
1 # 使用者2753346785936
-
2 # maimi32709
給你一個思路:1:先查詢資料庫中有多少表放到一張表中select indentity(int,1,1)name into #afrom sysobjects where xtype="U" 2:統計一共有多少張表,迴圈執行取得每張表的名字,來查詢表的記錄數放到一張表b中3:查詢存放記錄的表 你先自己動手寫寫看,不會的話我在幫你寫
有兩個辦法:1、select a.table_name, sum(a.num_rows) from user_tables a group by a.table_name;這種方式需要oracle對錶做了統計分析後才能計算出總數,而且統計分析後新增或刪除的記錄,統計不出來2、寫個過程,但是這種方式的執行效率恐怕高不了,我可以給你寫個方法declare p_rows number;p_sql varchar(4000);begin for r in (select a.TABLE_NAME from user_tables a) loop p_sql:="select count(1) from "||r.table_name; execute immediate p_sql into p_rows; dbms_output.put_line(r.table_name||","||p_rows); end loop;end;