方法一:
首先建立乙個計算函式
1create
orreplace
function count_rows(table_name in
varchar2
,2 owner in
varchar2
default
null)3
return
number
4 authid current_user5is
6 num_rows number
;7 stmt varchar2(2000);8
begin
9if owner is
null
then
10 stmt :=
'select count(*) from "
'||table_name||'"
';11else
12 stmt :=
'select count(*) from "
'||owner||
'"."
'||table_name||'"
';13endif;
14execute immediate stmt into
num_rows;
15return
num_rows;
16end;
然後通過計算函式進行統計
select table_name, count_rows(table_name) nrows from user_tables
獲取要統計的值
方法二:
1select t.table_name,t.num_rows from user_tables t
檢視記錄數,但是num_rows儲存的是上次分析後的值,不準確,要使用該方法,必須分析後才可以試用
完成的語句為
1declare
2 v_tname varchar(50
);3 v_sqlanalyze varchar(500
);4 v_num number
;5 v_sql varchar(500);6
cursorc17
is8select table_name from
user_tables;
9begin
10open
c1;11
loop
12fetch c1 into
v_tname;
13if c1%found then
14 v_sqlanalyze :=
'analyze table
'||v_tname||
'estimate statistics';
15execute
immediate v_sqlanalyze;
16 v_sql :=
'select num_rows from user_tables where table_name =upper(
'''||v_tname||
''')';
17execute immediate v_sql into
v_num;
18 dbms_output.put_line('
表名:
'||v_tname||
'行數: '||
v_num);
19else
20exit;21
endif;22
endloop;
23end;
posted on 2017-05-10 15:17收藏
Oracle查詢資料庫中所有的表名稱
1.查詢資料庫中所有的表名稱和每張表所對應的資料條數 select t.table name,t.num rows from user tables t 此處需要注意的是 在查詢每張表所對應的資料條數時會與利用sql select count from tablename 所查詢出來的結果有所不同,...
查詢資料庫中所有的表
select from sysobjects where xtype u 查詢當前資料庫下所有使用者建立的表 xtype char 2 物件型別。可以是下列物件型別中的一種 c check 約束 d 預設值或 default 約束 f foreign key 約束 l 日誌 fn 標量函式 if 內...
查詢資料庫中所有表名,查詢表中所有欄位名
mysql 1.查詢資料庫中所有表名稱 select table name from information schema.tables where table schema 資料庫名稱 包含檢視 select table name from information schema.tables wh...