Oracle存儲過程的幾種調(diào)用方式圖文詳解
場景:Oracle存儲過程調(diào)用方式,包括PL/SQL的SQL窗口中調(diào)用、在PL/SQL的命令窗口、在Procedures菜單列表中選中存儲過程名稱右鍵點(diǎn)擊測試、在Package Bodies菜單列表中選中存儲過程名稱右鍵點(diǎn)擊測試、在Jobs菜單列表選中已經(jīng)配置Job的存儲過程右鍵中點(diǎn)擊運(yùn)行、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 窗口,即可以進(jìn)入SQL窗口中。
場景:在存儲過程提交后,直接在SQL 窗口執(zhí)行,調(diào)用存儲過程驗(yàn)證和測試存儲過程。
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工具,菜單路徑依次:文件->新建->命令窗口,即可以進(jìn)入命令窗口中。
場景:在存儲過程提交后,直接在命令窗口執(zhí)行,調(diào)用存儲過程驗(yàn)證和測試存儲過程。
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,選中需要測試的存儲過程,右鍵選中,點(diǎn)擊測試,即進(jìn)入測試窗口,根據(jù)需求填寫參數(shù)(如果有入?yún)ⅲW⒁?,能出現(xiàn)測試菜單前提是存儲過程必須先編譯提交。
場景:在存儲過程提交后,直接在Procedures菜單列表中選中存儲過程,調(diào)用存儲過程驗(yàn)證和測試存儲過程。
5.Package或Package Bodies菜單列表中調(diào)用存儲過程
在PL/SQL Developer工具,在左側(cè)對象導(dǎo)航窗口,菜單路徑依次:Users->用戶名稱->Objects->Package或Package Bodies,選中需要測試的存儲過程,右鍵選中,點(diǎn)擊測試,即進(jìn)入測試窗口,根據(jù)需求填寫參數(shù)(如果有入?yún)ⅲ?。注意,能出現(xiàn)測試菜單前提是存儲過程必須先編譯提交。
場景:在存儲過程提交后,直接在Package或Package Bodies菜單列表中選中存儲過程,調(diào)用存儲過程驗(yàn)證和測試存儲過程。
5.1 右鍵包名稱,選擇菜單:查看說明與體。即進(jìn)入包里存儲過程。
5.2 右鍵存儲過程名稱,選擇測試,即進(jìn)入測試窗口。
6.Jobs菜單列表調(diào)用存儲過程
在PL/SQL Developer工具,在左側(cè)對象導(dǎo)航窗口,菜單路徑依次:Users->用戶名稱->Objects->Jobs,選中需要運(yùn)行的job任務(wù),右鍵選中,點(diǎn)擊運(yùn)行。
場景:在存儲過程提交后,直接在Jobs菜單列表中選中存儲過程,調(diào)用存儲過程驗(yàn)證和測試存儲過程。
7.Java代碼中調(diào)用存儲過程
本例引用:http://chabaoo.cn/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)文章
windows下oracle 11g r2 安裝過程與卸載詳細(xì)圖解
這篇文章主要介紹了windows下oracle 11g r2 安裝過程與卸載詳細(xì)圖解,需要的朋友可以參考下2016-04-04Oracle 11g自動診斷信息庫(Automatic Diagnostic Repository,ADR)概述
這篇文章主要介紹了Oracle11g的自動診斷信息庫,需要的朋友可以參考下2014-06-06oracle ora-00054:resource busy and acquire with nowait speci
這篇文章主要介紹了oracle ora-00054:resource busy and acquire with nowait specified解決方法,需要的朋友可以參考下2015-12-12oracle11g客戶端連接12c服務(wù)器ORA-01017錯誤問題解決
這篇文章主要介紹了oracle11g客戶端連接12c服務(wù)器ORA-01017錯誤,本文給大家分享完美解決方法,對oracle 12c錯誤ORA-01017問題解決方法感興趣的朋友跟隨小編一起看看吧2023-06-06Oracle中行列轉(zhuǎn)換的實(shí)現(xiàn)方法匯總
行列轉(zhuǎn)換是指將行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù),或?qū)⒘袛?shù)據(jù)轉(zhuǎn)換為行數(shù)據(jù)的過程,本文主要介紹了Oracle中行列轉(zhuǎn)換的實(shí)現(xiàn)方法匯總,用PIVOT和UNPIVOT函數(shù)來實(shí)現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-02-02