熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

DBMS

2013-11-13 15:29:34  來源: Oracle 

  系統環境
  操作系統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_tablestable_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_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;
   /
  DEPT record(s)
  EMP record(s)
  SALGRADE record(s)
  
  PL/SQL 過程已成功完成

From:http://tw.wingwit.com/Article/program/Oracle/201311/16805.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.