在这个示例中,我们将在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”的用户的姓名已经变更成了“周星驰”。

DB2存储过程简单示例的更多相关文章

  1. DB2函数简单示例

    DB2中的函数原理同其他编程语言中的函数,均为输入几个参数,同时返回一个值. 下面的例子演示一个寻找某一次考试中成绩最好的学生的姓名. 首先,我们新建一个表SCORE用于表示考试,并插入几条数据: D ...

  2. Linux下的C Socket编程 -- server端的简单示例

    Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...

  3. C# 构建XML(简单示例)

    C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...

  4. 根据juery CSS点击一个标签弹出一个遮罩层的简单示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  5. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  6. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  7. spring-servlet.xml简单示例

    spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...

  8. SignalR 简单示例

    一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...

  9. Web API 简单示例

    一.RESTful和Web API Representational State Transfer (REST) is a software architecture style consisting ...

随机推荐

  1. 51 arm x86 的大小端记录

    51 是大端模式 arm的cortex m 默认小端,可以设置大端 x86是小端 大端模式:低位字节存在高地址上,高位字节存在低地址上  小端模式:高位字节存在高地址上,低位字节存在低地址上

  2. python - Flask 基础(1)

    这两天稍微接触了一点 Flask 框架,所以分享点基础 1. 配置文件 from flask import Flask app = Flask(__name__) # 使用自定义的配置文件 app.c ...

  3. 17.组件页面应用和vue项目生成

    基本示例 这里有一个 Vue 组件的示例: // 定义一个名为 button-counter 的新组件 Vue.component('button-counter', { data: function ...

  4. Number of Islands II

    Given a n,m which means the row and column of the 2D matrix and an array of pair A( size k). Origina ...

  5. BUG----spark

    我也想说很尴尬, 搞到显现 发现 原来是个版本的bug spark 1.6.0  有个BUG 希望更多人看到 Traceback (most recent call last):  File &quo ...

  6. [NOI2019]序列(模拟费用流)

    题意: 有两个长度为n的序列,要求从每个序列中选k个,并且满足至少有l个位置都被选,问总和最大是多少. \(1\leq l\leq k\leq n\leq 2*10^5\). 首先,记录当前考虑到的位 ...

  7. Greenplum 调优--VACUUM系统表

    Greenplum 调优--VACUUM系统表 1.VACUUM系统表原因 Greenplum是基于MVCC版本控制的,所有的delete并没有删除数据,而是将这一行数据标记为删除, 而且update ...

  8. P2679 子串 DP

    P2679 子串 DP 从字符串A中取出\(k\)段子串,按原顺序拼接,问存在多少个方案使拼接的字符串与字符串B相同 淦,又是这种字符串dp 设状态\(ans[i][j][k]\)表示A串位置\(i\ ...

  9. getchar 和EOF

    本文章基于:http://www.cnblogs.com/QLinux/articles/2465329.html,稍作了修改. 大师级经典的著作,要字斟句酌的去读,去理解.以前在看K&R的T ...

  10. 在docker容器中编译hadoop 3.1.0

    在docker容器中编译hadoop 3.1.0 优点:docker安装好之后可以一键部署编译环境,不用担心各种库不兼容等问题,编译失败率低. Hadoop 3.1.0 的源代码目录下有一个 `sta ...