該過程統計 RATING.ALL_PARAM_TABLE?表時包含的所有表的資料量
該過程統計 RATING.ALL_PARAM_TABLE表時包含的所有表的資料量
create table RATING.gather_tab_cnt(owner varchar2(20),table_name varchar(30),count number) tablespace D_LOG_01;
第一種寫法:---使用||拼變數
create or replace procedure gather_tab_cnt
is
cursor all_tab is select table_name from RATING.ALL_PARAM_TABLE;
v_tabname varchar2(50);
v_sql01 varchar2(2000);
v_sql02 varchar2(2000);
v_sql03 varchar2(2000);
own varchar2(40);
tb_name varchar2(40);
cnt number;
begin
for i in all_tab loop
v_tabname:=i.table_name;
dbms_output.put_line('v_tabname:'||v_tabname);
v_sql01:='select owner,table_name from dba_tables where table_name='''||v_tabname||'''';
execute immediate v_sql01 into own,tb_name;
dbms_output.put_line('own,tb_name:'||own||','||tb_name);
v_sql02:='select count(*) from '||own||'.'||tb_name;
execute immediate v_sql02 into cnt;
v_sql03:='insert into RATING.gather_tab_cnt values ('''||own||''','''||tb_name||''','''||cnt||''')';
execute immediate v_sql03;
commit;
end loop;
end;
/
每二種寫法:----直接用using 來指定變數
create or replace procedure gather_tab_cnt
is
cursor all_tab is select table_name from RATING.ALL_PARAM_TABLE where rownum<2;
v_tabname varchar2(50);
v_sql01 varchar2(2000);
v_sql02 varchar2(2000);
v_sql03 varchar2(2000);
own varchar2(40);
tb_name varchar2(40);
cnt number;
begin
for i in all_tab loop
v_tabname:=i.table_name;
v_sql01:='select owner,table_name from dba_tables where table_name=:v_tame';
execute immediate v_sql01 into own,tb_name using v_tabname;
v_sql02:='select count(*) from '||own||'.'||tb_name;
execute immediate v_sql02 into cnt ;
dbms_output.put_line(cnt);
v_sql03:='insert into RATING.gather_tab_cnt values(:owner,:tab_name,:cnt)';
execute immediate v_sql03 using own,tb_name,cnt;
commit;
end loop;
end;
/
create table RATING.gather_tab_cnt(owner varchar2(20),table_name varchar(30),count number) tablespace D_LOG_01;
第一種寫法:---使用||拼變數
create or replace procedure gather_tab_cnt
is
cursor all_tab is select table_name from RATING.ALL_PARAM_TABLE;
v_tabname varchar2(50);
v_sql01 varchar2(2000);
v_sql02 varchar2(2000);
v_sql03 varchar2(2000);
own varchar2(40);
tb_name varchar2(40);
cnt number;
begin
for i in all_tab loop
v_tabname:=i.table_name;
dbms_output.put_line('v_tabname:'||v_tabname);
v_sql01:='select owner,table_name from dba_tables where table_name='''||v_tabname||'''';
execute immediate v_sql01 into own,tb_name;
dbms_output.put_line('own,tb_name:'||own||','||tb_name);
v_sql02:='select count(*) from '||own||'.'||tb_name;
execute immediate v_sql02 into cnt;
v_sql03:='insert into RATING.gather_tab_cnt values ('''||own||''','''||tb_name||''','''||cnt||''')';
execute immediate v_sql03;
commit;
end loop;
end;
/
每二種寫法:----直接用using 來指定變數
create or replace procedure gather_tab_cnt
is
cursor all_tab is select table_name from RATING.ALL_PARAM_TABLE where rownum<2;
v_tabname varchar2(50);
v_sql01 varchar2(2000);
v_sql02 varchar2(2000);
v_sql03 varchar2(2000);
own varchar2(40);
tb_name varchar2(40);
cnt number;
begin
for i in all_tab loop
v_tabname:=i.table_name;
v_sql01:='select owner,table_name from dba_tables where table_name=:v_tame';
execute immediate v_sql01 into own,tb_name using v_tabname;
v_sql02:='select count(*) from '||own||'.'||tb_name;
execute immediate v_sql02 into cnt ;
dbms_output.put_line(cnt);
v_sql03:='insert into RATING.gather_tab_cnt values(:owner,:tab_name,:cnt)';
execute immediate v_sql03 using own,tb_name,cnt;
commit;
end loop;
end;
/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-1348849/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料量分割槽表統計資訊的管理大資料
- mysql 關於大資料量日誌表的優化過程MySql大資料優化
- mysql 關於大資料量日誌表的最佳化過程MySql大資料
- 插入相同的資料量普通表和臨時表產生的redo對比
- [轉帖]達夢資料庫-統計資料表資料量及空間表大小資料庫
- oracle統計表的所有行數(原創)Oracle
- Oracle中用sql查詢獲取資料庫的所有觸發器,所有儲存過程,所有檢視,所有表...OracleSQL資料庫觸發器儲存過程
- sql server 儲存過程中使用變數表,臨時表的分析(續)SQLServer儲存過程變數
- MySql 儲存過程 臨時表 無法插入資料MySql儲存過程
- SQL刪除資料庫裡所有表的外來鍵,同時刪除所有使用者表SQL資料庫
- oracle 查詢所有表的表名Oracle
- 簡單的資料表統計
- 一次性更該所有物件所有者的儲存過程。物件儲存過程
- 大資料量的報表如何快速分頁呈現?大資料
- oracle外部表實現大資料量的Excel匯入Oracle大資料Excel
- MySQL單表存多大的資料量比較合適MySql
- 通過shell指令碼生成資料統計資訊的報表指令碼
- 透過shell指令碼生成資料統計資訊的報表指令碼
- 計算資料庫中所有表的記錄條數資料庫
- 函式計算因為資料量過大超時的解決方案函式
- 資料庫擴充套件表設計過程記錄資料庫套件
- 資料庫中所有表的行數資料庫
- 表資料量影響MySQL索引選擇MySql索引
- MySQL超大表刪除資料過程MySql
- 如何快速最佳化幾千萬資料量的訂單表
- Excel做自動統計課時數地多彩課程表Excel
- openGauss核心分析(九):資料庫表的建立過程資料庫
- 透過觸發器複製包含LONG型別的表觸發器型別
- 清空資料庫中所有表資料的方法資料庫
- 匯出系統表中的儲存過程和函式儲存過程函式
- sql 資料庫 龐大資料量 需要分表SQL資料庫大資料
- 查詢Oracle資料庫使用者表中的多少資料量Oracle資料庫
- Web設計過程中該做和不該做的Web
- Oracle統計某個使用者下所有表的各自行數Oracle
- DB2_建立在臨時表上的檢視-過程-表函式-觸發器DB2函式觸發器
- 報表連 MongoDB,資料量大報表慢,怎麼做分頁?MongoDB
- 資料庫表時如何設計的?在建表中遇到最大的坑是啥?資料庫
- Sql儲存過程分頁--臨時表儲存SQL儲存過程