Oracle系統包

來源:互聯網
上載者:User

 

原文地址:http://www.cnblogs.com/caizhanshu/articles/1153277.html

類似網址:http://www.diybl.com/course/7_databases/oracle/Oracleshl/20110315/554478.html?username=xing_sky&password=yu900923

 

一.dbms_output
作用:用於輸入和輸出資訊,使用過程PUT和PUT_LINES可以將資訊發送到緩衝區,使用過程GET_LINE和GET_LINES可以顯示緩衝區資訊.
詳細如下:
  1.enable   
  該過程用於啟用對過程PUT,PUT_LINE,GET_LINE,GET_LINES的調用
  文法如下:
    dbms_output.enable(buffer_size in integer default 20000);
  2.disable
  該過程用于禁止對過程PUT,PUT_LINE,GET_LINE,GET_LINES的調用
  文法如下:
    dbms_output.disable;
  3.put和put_line
   過程put_line用於將一個完整行的資訊寫入到緩衝區中,過程put則用地分塊建立行資訊,   當使用過程put_line時,會自動在行的尾部追加行結束符;當使用過程put時,需要使用過程   new_line追加行結束符.
   樣本如下:
    set serverout on
    begin
      dbms_output.put_line('偉大的中華民族');
      dbms_output.put('中國');
      dbms_output.put(',偉大的祖國');
      dbms_output.new_line;
    end;
    /
    偉大的中華民族
    中國,偉大的祖國
  4.new_line
  該過程用於在行的尾部追加行結束符.當使用過程PUT時,必須調用NEW_LINE過程來結束行.
  5.get_line和get_lines
  過程get_line用於取得緩衝區的單行資訊,過程get_lines用於取得緩衝區的多行資訊.
二.dbms_job
作用:用於安排和管理作業隊列,通過使用作業,可以使ORACLE資料庫定期執行特定的任務.
  1.submit
  用於建立一個新作業.當建立作業時,需要給作業要執行的操作,作業的下次運行日期及已耗用時間間隔.
  文法如下:
    dbms_out.submit (
      job out binary_integer,what in varchar2,
      next_date in date default sysdate,
      interval in varchar2 default 'null',
      no_parse in boolean default false,
      instance in binary_integer default any_instance,
      force in boolean default false
    );
    注:job用於指定作業編號;what用於指定作業要執行的操作;next_date用於指定作業的下次運行日期;interval用於指定運行作業的時間間隔;no_parse用於指定是否解析與作業相關的過程;instance用於指定哪個常式可以運行作業;force用於指定是否強制運行與作業相關的常式.
  樣本如下:
    var jobno number
    begin
      dbms_job.submit(:jobno,
        'dbms_ddl.analyze_object(''table'',
        ''scott'',''emp'',''compute'');',
        sysdate,'sysdate+1');
      commit;
    end;
    /
  2.remove
  刪除作業隊列中的特定作業
  樣本如下:
    SQL>exec dbms_job.remove(1);
  3.change
  用於改變與作業相關的所有資訊,包括作業操作,作業運行日期以及已耗用時間間隔等.
  樣本如下:
    SQL>exec dbms_job.change(2,null,null,'sysdate+2');
  4.what
  用於改變作業要執行的操作
  樣本如下:
    SQL>exec dbms_job.what(
          2,'dbms_stats.gather_table_stats->(''scott'',''emp'');');   
  5.next_date
  用於改變作業的下次運行日期
  樣本如下:
    SQL>exec dbms_job.next_date('2','sysdate+1');
  6.instance
  用於改變作業的常式
  樣本如下:
    SQL>exec dbms_job.instance(2,1);
  7.interval
  用於改變作業的已耗用時間間隔
  樣本如下:
    SQL>exec dbms_job.interval(2,'sysdate+1/24/60');
  8.broken
  用於設定作業的中斷標識
  樣本如下:
    SQL>exec dbms_job.broken(2,true,'sysdate+1');
  9.run
  用於運行已存在的作業
  樣本如下:
    sql>exec dbms_job.run(1);
三.dbms_pipe
作用:用於在同一常式程的不同會話之間進行管道通訊.注意,如果使用者要執行包dbms_pipe中的過程和函數,則必須要為使用者授權.
sql>conn sys/oracle as sysdba;
sql>grant execute on dbms_pipe to scott;
  1.create_pipe
  該函數用於建立公用管道或私人管道.如果將參數private設定為TRUE,則建立私人管道;如果設定為FALSE,則建立公用管道.
  樣本如下:
    declare
      falg int;
    begin
      flag:=dbms_pipe.create_pipe('public_pipe',8192,false);
      if flag=0 then
        dbms_output.put_line('建立公用管道成功');
      end if;
    end;
    /
  2.pack_message
  該過程用於將訊息寫入到本地訊息緩衝區
  3.send_message
  該函數用於將本地訊息緩衝區中的內容發送到管道
  4.receive_message
  該函數用於接收管線訊息
  5.next_item_type
  該函數用於確定本地訊息緩衝區下一項的資料類型,如果該函數返回0,則表示管道沒有任何訊息;如果返回6,則表示下一項的資料類型為number;如果返回9,則表示下一項的資料類型為varchar2;如果返回11,則表示下一項的資料類型為rowid;如果返回12,則表示下一項的資料類型為date;如果返回23,則表示下一項的資料類型為raw.
  6.unpack_message
  該過程用於將訊息緩衝區的內容寫入到變數中.
  7.remove_pipe
  該函數用於刪除已經建立的管道
  8.purge
  該過程用於清除管道中的內容
  9.reset_buffer
  該過程用於複位管道緩衝區
  10.unique_session_name
  該函數用於為特定會話返回惟一的名稱,並且名稱的最長度為30位元組.
四.dbms_alert
作用:用於產生並傳遞資料庫預警資訊.使用包DBMS_ALERT,則必須以SYS登陸,為該使用者授予執行許可權.
sql>conn sys/oracle as sysdba
sql>grant execute on dbms_alert to scott;
  1.register
  用於註冊預警事件
  樣本如下:
    sql>exec dbms_alter.register('alter1');
  2.remove
  用於刪除會話不需要的預警事件.
  3.removeall
  用於刪除當前會話所有登入的預警事件
  文法如下:
    dbms_alter.removeall;
  4.set_defaults
  用於設定檢測預警事件的時間間隔,預設時間間隔為5秒
  5.signal
  用於指定預警事件所對應的預警訊息.
  6.waitany
  用於等待當前會話的任何預警事件,並且在預警事件發生時輸出相應資訊.在執行該過程之前,會隱含地發出COMMIT.
  文法如下:
    dbms_alter.waitany (
      name out varchar2,message out varchar2,
      status out integer,timeout in number default maxwait
    );
  注:status用於返回狀態值,返回0表示發生了預警事件,返回1表示逾時;timeout用於設定預警事件的逾時時間.
  7.waitone
  用於等待當前會話的特定預警事件,並且在發生預警事件時輸出預警訊息.
  文法同上
五.dbms_transaction
作用:用於在過程,函數,和包中執行SQL交易處理語句.
  1.read_only
  用於開始唯讀事務,其作用與SQL語句SET TRANSACTION READ ONLY完全相同
  2.read_write
  用於開始讀寫事務,------------------------------------WRITE-------
  3.advise_rollback
  用於建議回退遠端資料庫的分散式交易
  4.advise_nothing
  用於建議遠端資料庫的分散式交易不進行任何處理
  5.advise_commit
  用於建議提交遠端資料庫的分散式交易
  6.user_rollback_segment
  用於指定事務所要使用的復原段
  7.commit_comment
  用於在提交事務時指定注釋.
  8.commit_force
  用於強制提交分散式交易.
  9.commit
  用於提交當前事務
  10.savepoint
  用於設定儲存點
  11.rollback
  用於回退當前事務
  12.rollback_savepoint
  用於回退到儲存點
  13.rollback_force
  用於強制回退分散式交易
  14.begin_discrete_transaction
  用於開始獨立事務模式
  15.purge_mixed
  用於清除分散式交易的混合事務結果
  16.purge_lost_db_entry
  用於清除本機資料庫所記載的遠程事務入口,該事務入口操作因為遠端資料庫問題未能在遠端資料庫完成.
  17.local_transaction_id
  用於返回當前事務的事務標識號
  18.step_id
  用於返回排序DML事務的惟一正整數
六.dbms_session
作用:提供了使用PL/SQL實現ALTER SESSION命令,SET ROLE命令和其他會話資訊的方法.
  1.set_identifier
  用於設定會話的客戶ID號
  2.set_context
  用於設定應用內容屬性
  3.clear_context
  用於清除應用內容相關的屬性設定
  4.clear_identifier
  用於刪除會話的set_client_id.
  5.set_role
  用於啟用或禁止會話角色
  6.set_sql_trace
  用於啟用或禁止當前會話的SQL跟蹤
  文法如下:
    dbms_session.set_sql_trace(sql_strace boolean);
  7.set_nls
  用於設定NLS特徵
  文法如下:
    dbms_session.set_nls(param varchar2,value varchar2);
  8.close_database_link
  用於關閉已經開啟的資料庫鏈
  9.reset_package
  用於複位當前會話的所有包,並且會釋放包狀態
  10.modify_package_state
  用於修改當前會話的PL/SQL程式單元的狀態
  文法如下:
    dbms_session.modify_package_state(action_flags in pls_integer);
  11.unique_session_id
  用於返回當前會話的惟一ID標識符
  12.is_role_enabled
  用於確定當前會話是否啟用了特定角色.
  文法如下:
    dbms_session.is_role_enabled(rolename varchar2)
      return boolean;
  13.is_session_alive
  用於確定特定會話是否處於活動狀態.
  14.set_close_cached_open_cursors
  用於開啟或關閉close_cached_open_cursors
  15.free_unused_user_meory
  用於在執行了大內在操作(超過100K)之後回收未用記憶體
  16.set_context
  設定應用內容屬性的值
  17.list_context
  用於返回當前會話原命名空間和上下文列表
  18.swith_current_consumer_group
  用於改變當前會話的資源使用組
七.dbms_rowid
作用:用於在PL/SQL程式和SQL語句中取得行標識符的資訊並建立ROWID,通過該包可以取得行所在的檔案號,行所在檔案的資料區塊號,行所在資料區塊的行號,以及資料庫物件號等訊息.
  1.rowid_create
  建立ROWID
  文法如下:
    dbms_rowid.rowid_create (
      rowid_type in number,object_number in number,
      relative_fno in n umber,block_number in number,
      row_number in number)
      return rowid;
  注:rowid_type用於指定ROWID類型(0:受限ROWID,1:擴充ROWID);object_number用於指定資料對象號;relative_fno用於指定相對檔案號;block_number用於指定在檔案中的資料區塊號;row_number用於指定在資料區塊中的行號.
  2.rowid_info
  用於取得特定ROWID的詳細資料.
  3.rowid_type
  用於返回特定ROWID的類型
  4.rowid_object
  用於取得特定ROWID所對應的資料對象號
  5.rowid_relative_fno
  用於取得特定ROWID所對應的相對檔案號
 6.rowid_block_number
  用於返回特定ROWID在資料檔案中所對應的資料區塊號.
  7.rowid_row_number
  用於返回特定ROWID在資料區塊中所對應的行號.
  8.rowid_to_obsolute_fno
  用於返回特定ROWID所對應的絕對檔案號
  9.rowid_to_extended
  用於將受限rowid轉變為擴充rowid
  10.rowid_to_restricted
  用於將擴充rowid轉換為受限rowid
  11.rowid_verify
  檢查是否可以將受限rowid轉變為擴充rowid
八.dbms_rls
作用:只適用於Oracle Enterprise Edition,它用於實現精細存取控制,並且精細存取控制是通過在SQL語句中動態增加謂詞(WHERE子句)來實現的.通過使用ORACLE的精細存取控制特徵,可以使不同資料庫使用者在執行相同SQL語句時操作同一張表上的不同資料.
九.dbms_ddl
作用:提供了在PL/SQL塊中執行DDL語句的方法,並且也提供了一些DDL的特殊管理方法.
十.dbms_shared_pool
作用:提供了對共用池的一些過程和函數訪問,它使使用者可以顯示共用池中的對象尺寸,綁定對象到共用池,清除綁定到共用池的對象.為了使用該包,必須運行dbmspool.sql指令碼來建立該包.
十一.dbms_random
作用:提供了內建的隨機數產生器,可以用於快速產生隨機數.
十二.dbms_logmnr
作用:通過使用包DBMS_LOGMNR和DBMS_LOGMNR_D,可以分析重做日誌和歸檔日誌所記載的事務變化,最終確定誤操作(例如DROP TABLE)的時間,跟蹤使用者事務操作,跟蹤並還原表的DML操作.
十三.dbms_flashback
作用:用於啟用或禁止會話的flashback特徵,為了使得普通使用者可以使用該包,必須要將執行該包的許可權授予這些使用者.
十四.dbms_obfuscation_toolkit
作用:用於加密和解密資料,另外還可以產生密碼檢驗和.通過加密輸入資料,可以防止駭客或其他使用者竊取私人資料;而通過結合使用加密和密碼檢驗和,可以防止駭客破壞初加密的資料.當使用該包加密資料時,要求被加密資料的長度必須為8位元組的整數倍.當使用DES演算法加密資料時,密鑰長度不能低於8位元組;當使用DES3演算法加密資料時,密鑰長度不能低於16位元組.
十五.dbms_space
作用:用於分析段增長和空間的需求
十六.dbms_space_admin
作用:提供了局部管理資料表空間的功能
十七.dbms_tts
作用:用於檢查資料表空間集合是否是自包含的,並在執行了檢查之後,將違反自包含規則的資訊寫入到暫存資料表TRANSPORT_SET_VIOLATIONS中.
十八.dbms_repair
作用:用於檢測,修複在表和索引上的損壞資料區塊.
十九.dbms_resource_manager
作用:用於維護資源計劃,資源使用組和資源計劃指令;包dbms_resource_manager_privs用於維護與資源管理相關的許可權.
二十.dbms_stats
作用:用於搜集,查看,修改資料庫物件的最佳化統計資訊.
二十一.utl_file
作用:用於讀寫OS檔案.使用該包訪問OS檔案時,必須要為OS目錄建立相應的DIRECTORY對象..當使用者要訪問特定目錄下的檔案時,必須要具有讀寫DIRECTORY對象的許可權.在使用UTL_FILE包之前,應首先建立DIRECTORY對象.
二十二.utl_inaddr
作用:用於取得區域網路或Internet環境中的主機名稱和IP地址.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.