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”的用户的姓名已经变更成了“周星驰”。

posted @   zifeiy  阅读(12631)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示