방법1) SQL*plUS에서 각각의 TABLE에 대하여 ANALYZE를 실행하면
USER_TABLES Data Dictionary에 각각의 record 건수가 등록된다.
방법2) SQLplUS에서 pl/SQL Program으로 처리한다.
==============================================================
create or replace procedure row_cnt
is
cursor_name integer;
rows_processed integer;
rowcnt number := 0;
cursor c1 is select table_name from user_tables;
begin
cursor_name := dbms_sql.open_cursor;
for i in c1 loop
dbms_sql.parse(cursor_name,
`select count(*) from `|| i.table_name,
dbms_sql.v7);
dbms_sql.define_column(cursor_name,1,rowcnt);
rows_processed := dbms_sql.execute(cursor_name);
if dbms_sql.fetch_rows(cursor_name)> 0 then
dbms_sql.column_value(cursor_name,1,rowcnt);
dbms_output.put_line(rpad(i.table_name,30,` `)||` `
||lpad(to_char(rowcnt),12,` `));
end if;
end loop;
dbms_sql.close_cursor(cursor_name);
end;
==============================================================
USER_TABLES Data Dictionary에 각각의 record 건수가 등록된다.
방법2) SQLplUS에서 pl/SQL Program으로 처리한다.
==============================================================
create or replace procedure row_cnt
is
cursor_name integer;
rows_processed integer;
rowcnt number := 0;
cursor c1 is select table_name from user_tables;
begin
cursor_name := dbms_sql.open_cursor;
for i in c1 loop
dbms_sql.parse(cursor_name,
`select count(*) from `|| i.table_name,
dbms_sql.v7);
dbms_sql.define_column(cursor_name,1,rowcnt);
rows_processed := dbms_sql.execute(cursor_name);
if dbms_sql.fetch_rows(cursor_name)> 0 then
dbms_sql.column_value(cursor_name,1,rowcnt);
dbms_output.put_line(rpad(i.table_name,30,` `)||` `
||lpad(to_char(rowcnt),12,` `));
end if;
end loop;
dbms_sql.close_cursor(cursor_name);
end;
==============================================================
'프로그래밍 > DB' 카테고리의 다른 글
[펌]DECODE를 이용하여 원치 않는 자료를 없애는 방법 (0) | 2008.01.09 |
---|---|
[펌]DECODE 이용사례 : RANGE에 따른 값으로 DECODE FUNCTION 이용하기 (0) | 2008.01.09 |
[펌]DATE의 기간을 계산하는 방법 (0) | 2008.01.09 |
[펌]문자 유형(한글/영문)을 판단하는 PL/SQL FUNCTION (0) | 2008.01.09 |
[펌]XML 파일을 PLSQL을 이용해서 CLOB에 저장하는 예제 (0) | 2008.01.09 |