Oracle存儲(chǔ)過程的幾種調(diào)用方式圖文詳解
場(chǎng)景:Oracle存儲(chǔ)過程調(diào)用方式,包括PL/SQL的SQL窗口中調(diào)用、在PL/SQL的命令窗口、在Procedures菜單列表中選中存儲(chǔ)過程名稱右鍵點(diǎn)擊測(cè)試、在Package Bodies菜單列表中選中存儲(chǔ)過程名稱右鍵點(diǎn)擊測(cè)試、在Jobs菜單列表選中已經(jīng)配置Job的存儲(chǔ)過程右鍵中點(diǎn)擊運(yùn)行、Java代碼調(diào)用存儲(chǔ)過程。
版本:Oracle Database 11g
工具:PL/SQL Developer
一、案例場(chǎng)景
1.基礎(chǔ)環(huán)境
本例環(huán)境,使用Packages和Packages bodies管理存儲(chǔ)過程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;注意以下測(cè)試,存儲(chǔ)過程或者包都必須編譯通過,即如下。

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

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

5.2 右鍵存儲(chǔ)過程名稱,選擇測(cè)試,即進(jìn)入測(cè)試窗口。

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

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

