DB2存儲過程簡單示例


在這個示例中,我們將在DB2中創建一個名為DEMO1201的存儲過程。
該存儲過程的輸入參數IN_NAME和IN_CREDITCARD,表示用戶的姓名和身份證號。
該存儲過程的作用是根據身份證號來新建用戶或者更改用戶信息,代碼如下:

CREATE OR REPLACE PROCEDURE DEMO1201 (
  IN IN_NAME VARCHAR(50),
  IN IN_CREDITCARD CHARACTER(18)
)
BEGIN
  DECLARE V_RESULT VARCHAR(50) DEFAULT NULL;
  SELECT NAME INTO V_RESULT FROM USERS WHERE CREDITCARD=IN_CREDITCARD;
  IF (V_RESULT IS NOT NULL) THEN
    UPDATE USERS SET NAME=IN_NAME WHERE CREDITCARD=IN_CREDITCARD;
  ELSE
    INSERT INTO USERS VALUES(IN_NAME,IN_CREDITCARD);
  END IF;
END

創建完該存儲過程后,我們來新建一個USERS表並調用存儲過程:

DROP TABLE USERS;
CREATE TABLE USERS (
  NAME VARCHAR(50),
  CREDITCARD CHARACTER(18)
);
INSERT INTO USERS VALUES ('劉德華','123456789123456789');
INSERT INTO USERS VALUES ('周傑倫','123456789987654321');

CALL DEMO1201('周星馳','123456789987654321');

我們新建了兩個用戶,並調用了存儲過程DEMO1201,此時我們執行SELECT操作:

SELECT * FROM USERS;

結果如下:

NAME                                               CREDITCARD         
-------------------------------------------------- ------------------ 
劉德華                                             123456789123456789 
周星馳                                             123456789987654321 

可以看到,CREDITCARD為“123456789987654321”的用戶的姓名已經變更成了“周星馳”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM