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”的用户的姓名已经变更成了“周星驰”。
DB2存储过程简单示例的更多相关文章
- DB2函数简单示例
DB2中的函数原理同其他编程语言中的函数,均为输入几个参数,同时返回一个值. 下面的例子演示一个寻找某一次考试中成绩最好的学生的姓名. 首先,我们新建一个表SCORE用于表示考试,并插入几条数据: D ...
- Linux下的C Socket编程 -- server端的简单示例
Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...
- C# 构建XML(简单示例)
C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...
- 根据juery CSS点击一个标签弹出一个遮罩层的简单示例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- demo工程的清单文件及activity中api代码简单示例
第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...
- spring-servlet.xml简单示例
spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...
- SignalR 简单示例
一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...
- Web API 简单示例
一.RESTful和Web API Representational State Transfer (REST) is a software architecture style consisting ...
随机推荐
- 网站添加logo图片
网站添加log图片 第一种方法 这里使用的图片一般为16*16大小的图片 <link rel="shortcut icon" href="http://xxx.xx ...
- GITHUB下载源码方式
从昨天开始就想着从GitHub上下载一个开源的Vue的实战项目,希望能从中学习更多的Vue的实用内容,结果搞了半天好不容易下载了,不知道怎么弄.然而,今天终于成功了,激动地我赶紧来记录一下.如何从Gi ...
- HaspMap和ConcurrentHashMap
参考自:http://www.importnew.com/28263.html HaspMap和ConcurrentHashMap(康科瑞特哈希迈普) Java7 HashMap 不支持并发操作,Ha ...
- 学到了林海峰,武沛齐讲的Day25-完
@property @classmethod @staticmethod 类的继承
- 学到了林海峰,武沛齐讲的Day14完
全局变量和局部变量 局部里面定义 global name ======将局部变量变成全局变量 nonlocal name # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止 有 ...
- 使用Spring PropertyPlaceholderConfigurer 配置中文出现乱码的解决方法
在使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 读取配置文件时,发现对于中文的处理会出现乱码现象,比 ...
- postgrepSQL psql基础操作
1.登录postgrepSQL psql 2.退出postgrepSQL \q 3.查看postgrepSQL里面的数据库 1)psql -l 2)\ l 4.切换DB \c db_name 5.查看 ...
- public abstract啥时候可以省略?
父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有方法都实现覆盖了,子类才有创建对象实例的能力,否则子类也必须是抽象类.抽象类中可以有构造方法,是子类在构造子类对象时需要调用父类(抽象类 ...
- Ubuntu18.04开机动画(bootsplash)安装
一.搜索喜欢的主题 1.通过软件源搜索,这个比较简单但是没有太喜欢的.-----------------------------------------------------------pipci@ ...
- gdb 预备知识
1.gcc的-g选项 如果要使用gdb进行调试,必须在编译时在gcc中加入-g选项,使用参数 -g 表示将源代码调试信息编译到可执行文件中. #include <stdio.h> int ...