日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle中sql行数的计算,Oracle技术网—如何利用DBMS_SQL包和游标计算当前用户下所有表的行数...

發布時間:2023/12/4 数据库 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle中sql行数的计算,Oracle技术网—如何利用DBMS_SQL包和游标计算当前用户下所有表的行数... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現方法:

SQL> conn scott/tiger

SQL> set serveroutput on size 1000000

SQL>

SQL> DECLARE

2 t_c1_tname user_tables.table_name%TYPE;

3 t_command varchar2(200);

4 t_cid integer;

5 t_total_records number(10);

6 stat integer;

7 row_count integer;

8 t_limit integer := 0;--限制只取出記錄大于0的表的情況

9 cursor c1 is select table_name from user_tables order by table_name;--查出所有表的名字

10 BEGIN

11 t_limit := 0;

12 open c1;

13 loop

14 fetch c1 into t_c1_tname;--取出一個表名

15 exit when c1%NOTFOUND;--如果游標記錄取完,退出循環

16 t_command := 'SELECT COUNT(0) FROM '||t_c1_tname;--定義SQL命令

17 t_cid := DBMS_SQL.OPEN_CURSOR;--創建一個游標

18 DBMS_SQL.PARSE(t_cid,t_command,dbms_sql.native);--向服務器發出一個語句并檢查這個語句的語法和語義錯誤

19 DBMS_SQL.DEFINE_COLUMN(t_cid,1,t_total_records);--定義將從FetchRows()函數接收數據的變量的數據類型與大小

20 stat := DBMS_SQL.EXECUTE(t_cid);--執行此語句,因為執行的是查詢,所以必須跟著Fetch_Rows函數并為單個行檢索數據

21 row_count := DBMS_SQL.FETCH_ROWS(t_cid);--取回一行數據放入局部緩沖區

22 DBMS_SQL.COLUMN_VALUE(t_cid,1,t_total_records);--返回調用FetchRows()取回的一列的值,這一列的值存儲在t_total_records中

23 if t_total_records > t_limit then

24 DBMS_OUTPUT.PUT_LINE(rpad(t_c1_tname,55,' ')||

25 to_char(t_total_records,'99999999')||' record(s)');

26

27 end if;

28 DBMS_SQL.CLOSE_CURSOR(t_cid);

29 end loop;

30 close c1;

31 END;

32 /

DEPT 4 record(s)

EMP 14 record(s)

SALGRADE 5 record(s)

PL/SQL 過程已成功完成。

總結

以上是生活随笔為你收集整理的oracle中sql行数的计算,Oracle技术网—如何利用DBMS_SQL包和游标计算当前用户下所有表的行数...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。