系统环境
操作系统Windows机器内存M
数据库Oraclei R() for NT 企业版
安装路径C:\ORACLE
实现方法
SQL> conn scott/tiger
SQL> set serveroutput on size
SQL>
SQL> DECLARE
t_c_tname user_tablestable_name%TYPE;
t_command varchar();
t_cid integer;
t_total_records number();
stat integer;
row_count integer;
t_limit integer :=;限制只取出记录大于的表的情况
cursor cis select table_name from user_tables order by table_name;查出所有表的名字
BEGIN
t_limit :=;
open c;
loop
fetch cinto t_c_tname;取出一个表名
exit when c%NOTFOUND;如果游标记录取完退出循环
t_command :=SELECT COUNT() FROM||t_c_tname;定义SQL命令
t_cid := DBMS_SQLOPEN_CURSOR;创建一个游标
DBMS_SQLPARSE(t_cidt_commanddbms_sqlnative);向服务器发出一个语句并检查这个语句的语法和语义错误
DBMS_SQLDEFINE_COLUMN(t_cidt_total_records);定义将从FetchRows()函数接收数据的变量的数据类型与大小
stat := DBMS_SQLEXECUTE(t_cid);执行此语句因为执行的是查询所以必须跟着Fetch_Rows函数并为单个行检索数据
row_count := DBMS_SQLFETCH_ROWS(t_cid);取回一行数据放入局部缓沖区
DBMS_SQLCOLUMN_VALUE(t_cidt_total_records);返回调用FetchRows()取回的一列的值这一列的值存储在t_total_records中
if t_total_records > t_limit then
DBMS_OUTPUTPUT_LINE(rpad(t_c_tname)||
to_char(t_total_records)||record(s));
end if;
DBMS_SQLCLOSE_CURSOR(t_cid);
end loop;
close c;
END;
/
DEPTrecord(s)
EMPrecord(s)
SALGRADErecord(s)
PL/SQL 过程已成功完成