一個oracle預存程序

來源:互聯網
上載者:User

標籤:

 開啟plsql,在packages檔案夾裡建立預存程序

在sql視窗中運行如下語句

create or replace package SY_USER_PKG1 is

TYPE MYCURSOR IS REF CURSOR;

--自己寫的測試預存程序
PROCEDURE T_CHCODE1
(
v_phone IN VARCHAR2,
v_userType IN NUMBER,
v_type IN NUMBER,
v_err_code OUT NUMBER
);
end SY_USER_PKG1;

則會在packages檔案夾下出現這個預存程序標記,就相當於java中的一個介面吧!

然後:再寫具體的預存程序,就相當於java中的介面實作類別吧

create or replace package body SY_USER_PKG1 is


PROCEDURE T_CHCODE1
(
v_phone IN VARCHAR2,
v_userType IN NUMBER,
v_type IN NUMBER,
v_err_code OUT NUMBER
)
IS
v_userCount NUMBER;
BEGIN

IF v_type=1 THEN
SELECT COUNT(1) INTO v_userCount FROM t_user_register_info A WHERE A.ACCOUNT=v_phone and a.user_type_id=v_userType;
IF v_userCount=1 THEN
v_err_code:=1;
else
v_err_code:=0;
END IF;
end if;

IF v_type=2 THEN
SELECT COUNT(1) INTO v_userCount FROM t_user_register_info A WHERE A.ACCOUNT=v_phone and a.user_type_id=v_userType;
IF v_userCount=0 THEN
v_err_code:=2;
else
v_err_code:=0;
END IF;
END IF;


end T_CHCODE1;
end SY_USER_PKG1;

這段代碼按F8運行後,在packages bodyies檔案夾下會出現這個

這就是一個完整的預存程序了,有介面,有實現

下面讓我們來測試一下

點擊右鍵,會有測試選項

填入參數,如,F8運行,結果如

 

可以看到拿到了返回的結果值 0

然後就可以在java代碼中調用了,在mapper設定檔中是這樣的:

<insert id="chcode" parameterType="java.util.Map" statementType="CALLABLE">
<![CDATA[
{call SY_USER_PKG1.T_CHCODE1(

#{v_phone,mode=IN,jdbcType=NVARCHAR},
#{v_userType,mode=IN,jdbcType=NUMERIC},
#{v_type,mode=IN,jdbcType=NUMERIC},
#{v_err_code,mode=OUT,jdbcType=NUMERIC}
)
}

]]>


</insert>

在service實作類別中直接調用

 

 oCode就是拿到的傳回值了。

至此,一個調用預存程序的流程結束了!

 

一個oracle預存程序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.