天天看點

Oracle資料庫中有關記錄個數的查詢一、查詢表中全部的記錄個數二、按照條件查詢記錄個數三、查詢一個使用者下所有表的記錄總條數

可用兩種方法,一種是在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&gt;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,如需轉載請自行聯系原作者