oracle10g_儲存過程學習小記

wisdomone1發表於2010-03-23

 決意分如下幾塊來展述:
1,
 構建儲存過程語法,請參考官方文件(sql references)---create procedure

摘錄下大體語法如下:
create or replace procecure zxy  ---zxy為建立的儲存過程名字,or replace為重建儲存過程
(arg in datatype default defaultvalue)  --預設為in,也可以為out或in out(故名思義:輸入輸出引數,皆相對於建立的儲存過程而言)

authid current_user  --此引數指定執行此儲存過程,是以建立它的使用者身份或以當前使用者身份,authid後跟隨合理值為:current_user或者definer


is

plsql塊 ---比如:begin end定義塊


2,建立儲存過程
    conn zxy/system  --注:以一般使用者建立儲存過程,須具備create procedure許可權,其它同理
   
   create or replace procedure p_insert(v_a int)
   as
   begin
   insert into tt values(v_a);
   commit;
   other;---在此呼叫另一個儲存過程other,具體建立過程,請繼續往下看
   end;

   create or replace procedure other
   as
   begin
     execute immediate 'truncate table tt'; --在儲存過程呼叫ddl語句,請用dbms_sql或者execute immediate包裝,不然提示編譯錯誤
   end;

 
3,除錯及執行儲存過程
   除錯嗎,沒有什麼好聽的,第2步建立完畢,就建立完了,如果提示出錯,輸入
   show err --可多次除錯儲存過程,直至成功建立
 
   下面我們說說執行
   exec p_insert(2)   ---在sqlplus或其它開發工具中(oracle支援)




4,檢視儲存過程定義
        break on name ---格式化語句,表示對於有重複列值的name,僅顯示第一次
    select name,text from user_source;


   



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

相關文章