原文地址: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地址.