您的位置:首頁技術文章
文章詳情頁

Oracle存儲過程的幾種調用方式圖文詳解

瀏覽:37日期:2023-05-30 16:13:57
目錄
  • 一、案例場景
    • 1.基礎環境
    • 2.SQL窗口中調用存儲過程
    • 3.命令窗口中調用存儲過程
    • 4.Procedures菜單列表中調用存儲過程
    • 5.Package或Package Bodies菜單列表中調用存儲過程
    • 6.Jobs菜單列表調用存儲過程
    • 7.Java代碼中調用存儲過程
  • 總結

    場景:Oracle存儲過程調用方式,包括PL/SQL的SQL窗口中調用、在PL/SQL的命令窗口、在Procedures菜單列表中選中存儲過程名稱右鍵點擊測試、在Package Bodies菜單列表中選中存儲過程名稱右鍵點擊測試、在Jobs菜單列表選中已經配置Job的存儲過程右鍵中點擊運行、Java代碼調用存儲過程。

    版本:Oracle Database 11g

    工具:PL/SQL Developer

    一、案例場景

    1.基礎環境

    本例環境,使用Packages和Packages bodies管理存儲過程Procedure。

    Packages和Packages bodies名稱:PKG_ZBZ_PORTAL

    Procedure名稱:PRO_INSERT_INFO_ARGS

    完整SQL:

    --包定義CREATE OR REPLACE PACKAGE PKG_ZBZ_PORTAL IS  PROCEDURE PRO_INSERT_INFO_ARGS(IN_DATE IN VARCHAR2 := NULL,FLAG OUT NUMBER,FAIL_INFO OUT VARCHAR2);END PKG_ZBZ_PORTAL;--包體CREATE OR REPLACE PACKAGE BODY PKG_ZBZ_PORTAL IS  PROCEDURE PRO_INSERT_INFO_ARGS(IN_DATE   IN VARCHAR2 := NULL,FLAG  OUT NUMBER,FAIL_INFO OUT VARCHAR2) IS  BEGIN    DECLARE      V_DATE DATE := TRUNC(SYSDATE - 1);    BEGIN      FLAG      := 1;      FAIL_INFO := "";      IF (IN_DATE IS NOT NULL) THENV_DATE := TO_DATE(IN_DATE, "YYYYMMDD");      END IF;      INSERT INTO B_LOG_INFOSELECT SEQ_DEMO_ID.NEXTVAL,V_DATE,       SYSDATE,"1","執行成功",50,"DUAL"  FROM DUAL;      COMMIT;    EXCEPTION      WHEN OTHERS THENFLAG      := 0;FAIL_INFO := "此次執行: " || IN_DATE || " 輸出結果: FLAG = " || FLAG ||     "異常信息:  " || SQLERRM;ROLLBACK;    END;  END PRO_INSERT_INFO_ARGS;END PKG_ZBZ_PORTAL;

    注意以下測試,存儲過程或者包都必須編譯通過,即如下。

    2.SQL窗口中調用存儲過程

    在PL/SQL Developer工具,菜單路徑依次:文件->新建->SQL 窗口,即可以進入SQL窗口中。

    場景:在存儲過程提交后,直接在SQL 窗口執行,調用存儲過程驗證和測試存儲過程。

    var FLAG NUMBER;var FAIL_INFO VARCHAR2(512);exec PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS( "20220710",:FLAG,:FAIL_INFO);

    3.命令窗口中調用存儲過程

    在PL/SQL Developer工具,菜單路徑依次:文件->新建->命令窗口,即可以進入命令窗口中。

    場景:在存儲過程提交后,直接在命令窗口執行,調用存儲過程驗證和測試存儲過程。

    var FLAG NUMBER;var FAIL_INFO VARCHAR2(512);exec PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS( "20220710",:FLAG,:FAIL_INFO);

    4.Procedures菜單列表中調用存儲過程

    在PL/SQL Developer工具,在左側對象導航窗口,菜單路徑依次:Users->用戶名稱->Objects->Procedures,選中需要測試的存儲過程,右鍵選中,點擊測試,即進入測試窗口,根據需求填寫參數(如果有入參)。注意,能出現測試菜單前提是存儲過程必須先編譯提交。

    場景:在存儲過程提交后,直接在Procedures菜單列表中選中存儲過程,調用存儲過程驗證和測試存儲過程。

    5.Package或Package Bodies菜單列表中調用存儲過程

    在PL/SQL Developer工具,在左側對象導航窗口,菜單路徑依次:Users->用戶名稱->Objects->Package或Package Bodies,選中需要測試的存儲過程,右鍵選中,點擊測試,即進入測試窗口,根據需求填寫參數(如果有入參)。注意,能出現測試菜單前提是存儲過程必須先編譯提交。

    場景:在存儲過程提交后,直接在Package或Package Bodies菜單列表中選中存儲過程,調用存儲過程驗證和測試存儲過程。

    5.1 右鍵包名稱,選擇菜單:查看說明與體。即進入包里存儲過程。

    5.2 右鍵存儲過程名稱,選擇測試,即進入測試窗口。

    6.Jobs菜單列表調用存儲過程

    在PL/SQL Developer工具,在左側對象導航窗口,菜單路徑依次:Users->用戶名稱->Objects->Jobs,選中需要運行的job任務,右鍵選中,點擊運行。

    場景:在存儲過程提交后,直接在Jobs菜單列表中選中存儲過程,調用存儲過程驗證和測試存儲過程。

    7.Java代碼中調用存儲過程

    本例引用:https://www.jb51.net/article/281108.htm

    場景:

    使用Java代碼調用oracle的存儲過程,本例使用JdbcTemplate模板類操作.

    總結

    到此這篇關于Oracle存儲過程的幾種調用方式的文章就介紹到這了,更多相關Oracle存儲過程調用方式內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: Oracle
    国产综合久久一区二区三区