ORACLE 系統包

gaopengtttt發表於2008-12-28

一.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地址.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-524495/,如需轉載,請註明出處,否則將追究法律責任。

相關文章