Oracle存儲過程

          -----------------------------------------------

          A,使用存儲過程參數

          -----------------------------------------------

          定義語法:

          CREATE [OR REPLACE] PROCEDURE procedure_name
              (arg1 [mode1] type1 [default  default_value], arg2 [mode2] type2, ...)
          IS [AS]
          PL/SQL Block;

          說明:

          在定義參數時,只能指定數據類型,不能指定長度。

          參數類型為IN(默認),OUT,IN OUT三種。

          使用集合類型作為返回值時,需要使用自定義的嵌套表類型或者VARRAY類型。

           

          存儲過程示例:

          CREATE OR REPLACE PROCEDURE out_time
          IS
          BEGIN
             DBMS_SESSION.set_nls ('NLS_DATE_FORMAT', '''YYYY-MM-DD HH24:MI:SS''');
             DBMS_OUTPUT.put_line (SYSDATE);
          END;
          /

           

          -----------------------------------------------

          B,調用存儲過程

          -----------------------------------------------

          在SQL*Plus中調用過程時,需要使用CALL或者EXECUTE命令;而在PL/SQL塊中過程可以直接引用。

          exec procedure_name()

           

          參數傳遞:位置傳遞,名稱傳遞,組合傳遞。

          exec procedure_name('arg1_value',  arg2=>'arg2_value')

           

           

          -----------------------------------------------

          C,維護存儲過程

          -----------------------------------------------

          第一,刪除過程

          DROP PROCEDURE procedure_name;

          第二,顯示編譯錯誤

          方法一:執行命令

          SHOW errors

          方法二:查詢數據字典

          SELECT *
            FROM user_errors;

          第三,確定過程狀態

          當使用ALTER  TABLE命令改變表結構時,會將基本該表的子程序狀態改為INVALID狀態。使用下面的語句可以查詢對象的狀態,

          SELECT *
            FROM user_objects;

          第四,編譯過程

          為了避免過程的運行時錯誤,應該重新編譯處于INVALID狀態的過程。

          ALTER   PROCEDURE  procedure_name  COMPILE;

          編譯函數:

          ALTER   FUNCTION   procedure_name  COMPILE;

          第五,查看過程代碼

          查詢數據字典USER_SOURCE,可以獲得子程序名稱以及源代碼。

          SELECT *
            FROM user_source t
          WHERE t.NAME = 'OUT_TIME';

          posted on 2009-03-25 10:52 JavaBegger 閱讀(162) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 利津县| 元阳县| 营口市| 沽源县| 上饶市| 新蔡县| 邵东县| 荥阳市| 仙居县| 诸暨市| 阿坝| 吴旗县| 商河县| 包头市| 兴宁市| 朔州市| 崇州市| 南陵县| 吉木乃县| 昌乐县| 太保市| 磐安县| 宁乡县| 观塘区| 新民市| 古交市| 射阳县| 盘山县| 东海县| 奉新县| 濉溪县| 常山县| 东辽县| 喀喇沁旗| 常熟市| 巴彦淖尔市| 玉溪市| 利川市| 大名县| 云南省| 亳州市|