可用兩種方法,一種是在oracle的系統表中統計,另一種需要寫存儲過程統計,方法分别如下。
1、系統表中統計:
<code>SELECT</code> <code>sum</code><code>(num_rows) </code><code>FROM</code> <code>user_tables;</code>
結果:
2、存儲過程統計,代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<code>declare</code>
<code>v_tName </code><code>varchar</code><code>(50);</code>
<code>v_sqlanalyze </code><code>varchar</code><code>(500);</code>
<code>v_num number;</code>
<code>v_sql </code><code>varchar</code><code>(500);</code>
<code>cursor</code> <code>c1</code>
<code>is</code>
<code>select</code> <code>table_name </code><code>from</code> <code>user_tables;</code>
<code>begin</code>
<code>open</code> <code>c1;</code>
<code>loop</code>
<code>fetch</code> <code>c1 </code><code>into</code> <code>v_tName;</code>
<code>if c1%found </code><code>then</code>
<code> </code>
<code>v_sqlanalyze :=</code><code>'analyze table '</code><code>||v_tName||</code><code>' estimate statistics'</code><code>;</code>
<code>execute</code> <code>immediate v_sqlanalyze;</code>
<code>v_sql := </code><code>'select NUM_ROWS from user_tables where table_name =upper('</code><code>''</code><code>||v_tName||</code><code>''</code><code>')'</code><code>;</code>
<code>execute</code> <code>immediate v_sql </code><code>into</code> <code>v_num;</code>
<code>dbms_output.put_line(</code><code>'表名: '</code><code>||v_tName||</code><code>' 行數: '</code><code>||v_num);</code>
<code>else</code>
<code>exit;</code>
<code>end</code> <code>if;</code>
<code>end</code> <code>loop;</code>
<code>end</code><code>;</code>
輸出結果
Select Count(*) from tablename where ID>1
<code>v_count number(10);</code>
<code>t_count number(10) </code><code>default</code> <code>0;</code>
<code>cursor</code> <code>t_cur </code><code>is</code>
<code>select</code> <code>table_name</code>
<code>from</code> <code>user_tables;</code>
<code>for</code> <code>t_rec </code><code>in</code> <code>t_cur</code>
<code>execute</code> <code>immediate </code><code>'select count(*) from '</code><code>||t_rec.table_name||</code><code>' into v_count'</code><code>;</code>
<code>t_count:=v_count+t_count;</code>
<code>dbms_output.put_line(to_char(t_count));</code>
參考文章
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創造力的想法被現實的架構所束縛,讓創造力自由成長吧! 多花時間,關心他(她)人,正如别人所關心你的。理想的騰飛與實作,沒有别人的支援與幫助,是萬萬不能的。
本文轉自wenglabs部落格園部落格,原文連結:http://www.cnblogs.com/arxive/p/5822284.html,如需轉載請自行聯系原作者