Oracle存儲過程的幾種調(diào)用方式圖文詳解
場景:Oracle存儲過程調(diào)用方式,包括PL/SQL的SQL窗口中調(diào)用、在PL/SQL的命令窗口、在Procedures菜單列表中選中存儲過程名稱右鍵點擊測試、在Package Bodies菜單列表中選中存儲過程名稱右鍵點擊測試、在Jobs菜單列表選中已經(jīng)配置Job的存儲過程右鍵中點擊運行、Java代碼調(diào)用存儲過程。
版本:Oracle Database 11g
工具:PL/SQL Developer
一、案例場景
1.基礎(chǔ)環(huán)境
本例環(huán)境,使用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) THEN
V_DATE := TO_DATE(IN_DATE, 'YYYYMMDD');
END IF;
INSERT INTO B_LOG_INFO
SELECT SEQ_DEMO_ID.NEXTVAL,V_DATE,
SYSDATE,'1','執(zhí)行成功',50,'DUAL'
FROM DUAL;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
FLAG := 0;
FAIL_INFO := '此次執(zhí)行: ' || IN_DATE || ' 輸出結(jié)果: FLAG = ' || FLAG ||
'異常信息: ' || SQLERRM;
ROLLBACK;
END;
END PRO_INSERT_INFO_ARGS;
END PKG_ZBZ_PORTAL;注意以下測試,存儲過程或者包都必須編譯通過,即如下。

2.SQL窗口中調(diào)用存儲過程
在PL/SQL Developer工具,菜單路徑依次:文件->新建->SQL 窗口,即可以進入SQL窗口中。
場景:在存儲過程提交后,直接在SQL 窗口執(zhí)行,調(diào)用存儲過程驗證和測試存儲過程。
var FLAG NUMBER; var FAIL_INFO VARCHAR2(512); exec PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS( '20220710',:FLAG,:FAIL_INFO);
3.命令窗口中調(diào)用存儲過程
在PL/SQL Developer工具,菜單路徑依次:文件->新建->命令窗口,即可以進入命令窗口中。
場景:在存儲過程提交后,直接在命令窗口執(zhí)行,調(diào)用存儲過程驗證和測試存儲過程。
var FLAG NUMBER; var FAIL_INFO VARCHAR2(512); exec PKG_ZBZ_PORTAL.PRO_INSERT_INFO_ARGS( '20220710',:FLAG,:FAIL_INFO);
4.Procedures菜單列表中調(diào)用存儲過程
在PL/SQL Developer工具,在左側(cè)對象導(dǎo)航窗口,菜單路徑依次:Users->用戶名稱->Objects->Procedures,選中需要測試的存儲過程,右鍵選中,點擊測試,即進入測試窗口,根據(jù)需求填寫參數(shù)(如果有入?yún)ⅲW⒁?,能出現(xiàn)測試菜單前提是存儲過程必須先編譯提交。
場景:在存儲過程提交后,直接在Procedures菜單列表中選中存儲過程,調(diào)用存儲過程驗證和測試存儲過程。

5.Package或Package Bodies菜單列表中調(diào)用存儲過程
在PL/SQL Developer工具,在左側(cè)對象導(dǎo)航窗口,菜單路徑依次:Users->用戶名稱->Objects->Package或Package Bodies,選中需要測試的存儲過程,右鍵選中,點擊測試,即進入測試窗口,根據(jù)需求填寫參數(shù)(如果有入?yún)ⅲ?。注意,能出現(xiàn)測試菜單前提是存儲過程必須先編譯提交。
場景:在存儲過程提交后,直接在Package或Package Bodies菜單列表中選中存儲過程,調(diào)用存儲過程驗證和測試存儲過程。
5.1 右鍵包名稱,選擇菜單:查看說明與體。即進入包里存儲過程。

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

6.Jobs菜單列表調(diào)用存儲過程
在PL/SQL Developer工具,在左側(cè)對象導(dǎo)航窗口,菜單路徑依次:Users->用戶名稱->Objects->Jobs,選中需要運行的job任務(wù),右鍵選中,點擊運行。
場景:在存儲過程提交后,直接在Jobs菜單列表中選中存儲過程,調(diào)用存儲過程驗證和測試存儲過程。

7.Java代碼中調(diào)用存儲過程
本例引用:http://m.fzitv.net/article/281108.htm
場景:
使用Java代碼調(diào)用oracle的存儲過程,本例使用JdbcTemplate模板類操作.
總結(jié)
到此這篇關(guān)于Oracle存儲過程的幾種調(diào)用方式的文章就介紹到這了,更多相關(guān)Oracle存儲過程調(diào)用方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle創(chuàng)建一個數(shù)據(jù)庫三步走
這篇文章主要介紹了oracle如何創(chuàng)建數(shù)據(jù)庫和用戶,以及每一步所涉及到的代碼,需要的朋友可以參考下2015-08-08
Oracle 閃回 找回數(shù)據(jù)的實現(xiàn)方法
閃回技術(shù)是Oracle強大數(shù)據(jù)庫備份恢復(fù)機制的一部分,在數(shù)據(jù)庫發(fā)生邏輯錯誤的時候,閃回技術(shù)能提供快速且最小損失的恢復(fù)。這篇文章主要介紹了Oracle 閃回 找回數(shù)據(jù)的實現(xiàn)方法,需要的朋友可以參考下2018-09-09
expdp與impdp導(dǎo)出導(dǎo)入特定表方式
文章介紹了在Oracle數(shù)據(jù)庫中導(dǎo)入導(dǎo)出特定表的方法,包括在10g和11g/12c中的操作區(qū)別,以及如何使用DBBAK文件夾作為導(dǎo)出文件的存儲,同時,文章指出了在Windows Server 2012及以上版本中使用PowerShell時可能會遇到的問題,建議在DOS命令行窗口中執(zhí)行相關(guān)操作2025-01-01
Oracle數(shù)據(jù)泵(expdp)導(dǎo)入導(dǎo)出數(shù)據(jù)的詳細步驟
這篇文章主要介紹了Oracle數(shù)據(jù)泵(expdp)導(dǎo)入導(dǎo)出數(shù)據(jù)的詳細步驟,文中詳細描述了源數(shù)據(jù)庫操作中的數(shù)據(jù)備份和目標數(shù)據(jù)庫操作中的數(shù)據(jù)恢復(fù)過程,需要的朋友可以參考下2024-12-12
oracle常用分析函數(shù)與聚合函數(shù)的用法
今天小編就為大家分享一篇關(guān)于oracle常用分析函數(shù)與聚合函數(shù)的用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-01-01
Oracle監(jiān)聽啟動時由“監(jiān)聽程序不支持服務(wù)”遇到的一系列問題
這篇文章主要介紹了Oracle監(jiān)聽啟動時由“監(jiān)聽程序不支持服務(wù)”遇到的一系列問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

