系統環境
操作系統
Windows
機器內存
M
數據庫
Oracle
i R
(
) for NT 企業版
安裝路徑
C:\ORACLE
實現方法
SQL> conn scott/tiger
SQL> set serveroutput on size
SQL>
SQL> DECLARE
t_c
_tname user_tables
table_name%TYPE;
t_command varchar
(
);
t_cid integer;
t_total_records number(
);
stat integer;
row_count integer;
t_limit integer :=
;
限制只取出記錄大於
的表的情況
cursor c
is select table_name from user_tables order by table_name;
查出所有表的名字
BEGIN
t_limit :=
;
open c
;
loop
fetch c
into t_c
_tname;
取出一個表名
exit when c
%NOTFOUND;
如果游標記錄取完
退出循環
t_command :=
SELECT COUNT(
) FROM
||t_c
_tname;
定義SQL命令
t_cid := DBMS_SQL
OPEN_CURSOR;
創建一個游標
DBMS_SQL
PARSE(t_cid
t_command
dbms_sql
native);
向服務器發出一個語句並檢查這個語句的語法和語義錯誤
DBMS_SQL
DEFINE_COLUMN(t_cid
t_total_records);
定義將從FetchRows()函數接收數據的變量的數據類型與大小
stat := DBMS_SQL
EXECUTE(t_cid);
執行此語句
因為執行的是查詢
所以必須跟著Fetch_Rows函數並為單個行檢索數據
row_count := DBMS_SQL
FETCH_ROWS(t_cid);
取回一行數據放入局部緩沖區
DBMS_SQL
COLUMN_VALUE(t_cid
t_total_records);
返回調用FetchRows()取回的一列的值
這一列的值存儲在t_total_records中
if t_total_records > t_limit then
DBMS_OUTPUT
PUT_LINE(rpad(t_c
_tname
)||
to_char(t_total_records
)||
record(s)
);
end if;
DBMS_SQL
CLOSE_CURSOR(t_cid);
end loop;
close c
;
END;
/
DEPT
record(s)
EMP
record(s)
SALGRADE
record(s)
PL/SQL 過程已成功完成
From:http://tw.wingwit.com/Article/program/Oracle/201311/16805.html