两种方式,创建有返回值的DB2函数
函数场景:路径信息由若干个机构编码组成,且一个机构编码是9位字符。 要求:获取路径信息,并且删除路径中包含‘99’开头的机构编码。
从客户端及服务器端分别创建ignore99(pathinfo varchar(1800))函数
1、在DbVisualizer中创建实现上述功能的函数
1 --/
2 CREATE FUNCTION ignore99 (pathinfo VARCHAR(1800)) RETURNS VARCHAR(1800) LANGUAGE SQL
3 BEGIN ATOMIC
4 DECLARE V_ORGCODE CHAR(9);--
5 DECLARE I_NUMBER INT;--
6 DECLARE I_INDEX INT;--
7 DECLARE V_PATHSTR VARCHAR(1800);--
8
9 set I_NUMBER=length(pathinfo)/9;--
10 set I_INDEX=0;--
11 set V_PATHSTR='';--
12 WHILE I_NUMBER>0 DO--
13 set V_ORGCODE=substr(pathinfo, I_INDEX*9+1, 9);--
14 IF V_ORGCODE not like '99%' THEN --
15 set V_PATHSTR = CONCAT(V_PATHSTR,V_ORGCODE);--
16 END IF;--
17 set I_INDEX = I_INDEX + 1;--
18 set I_NUMBER = I_NUMBER - 1;--
19 END WHILE;--
20 RETURN V_PATHSTR;--
21 END
22 /
在DbVisualizer创建函数的几个注意事项
①在DbVisualizer创建函数
以"--/"开头,以"/"结尾
②最后的end后面没有";"
③传入的参数varchar 型的要定义长度
④"BEGIN ATOMIC"表示下面的程序块是一个事务
⑤变量的赋值格式: set 变量名=变量值,要加"set"关键字
2、在Linux服务器端,创建一个成功的DB2函数
①先创建Crate_func.sql文件,将ignore99(pathinfo varchar(1800))写入Crate_func.sql文件
CREATE FUNCTION ignore99 (pathinfo VARCHAR(1800)) RETURNS VARCHAR(1800) LANGUAGE SQL
BEGIN ATOMIC
DECLARE V_ORGCODE CHAR(9);--
DECLARE I_NUMBER INT;--
DECLARE I_INDEX INT;--
DECLARE V_PATHSTR VARCHAR(1800);-- set I_NUMBER=length(pathinfo)/9;--
set I_INDEX=0;--
set V_PATHSTR='';--
WHILE I_NUMBER>0 DO--
set V_ORGCODE=substr(pathinfo, I_INDEX*9+1, 9);--
IF V_ORGCODE not like '99%' THEN --
set V_PATHSTR = CONCAT(V_PATHSTR,V_ORGCODE);--
END IF;--
set I_INDEX = I_INDEX + 1;--
set I_NUMBER = I_NUMBER - 1;--
END WHILE;--
RETURN V_PATHSTR;--
END@
②执行Crate_func.sql文件,命令:db2 -td@ -svf Crate_func.sql
③执行成功会显示:DB20000I The SQL command completed successfully.

④注意事项:
.sql文件以"@"结尾;
执行@之前需要连接数据库db2 connect to 数据库名称;
两种方式,创建有返回值的DB2函数的更多相关文章
- android两种方式获取AsyncTask返回值
获取AsyncTask返回值,在Activity中使用. 引用链接:https://www.oschina.net/code/snippet_725438_49858#72630 [1].[代码] [ ...
- 两种方式创建Maven项目【方式二】
1.不勾选Create a simple project,直接点击下一步 2.选择maven-archetype-webapp下一步 3.填写相关信息,点击下一步完成 4.此时会报一个jsp的错误.我 ...
- 两种方式创建Maven项目【方式一】
经常使用maven进行项目的管理,今天整理两种方式创建maven项目及创建过程中碰到的问题怎么解决: 方式一: 1.新建maven项目,点击下一步. 2.勾选Create a simple proje ...
- C语言中两种方式表示时间日期值time_t和struct tm类型的相互转换
使用gmtime函数或localtime函数将time_t类型的时间日期转换为structtm类型: 使用time函数返回的是一个long值,该值对用户的意义不大,一般不能根据其值确定具体的年.月.日 ...
- 两种方式创建支持SSH服务的docker镜像
方法一:基于commit命令创建 1.首先,从docker的源中查看我们需要的镜像,本案例中使用Ubuntu作为基础镜像. # federico @ linux in ~ [16:57:38] $ s ...
- **CI两种方式查询所返回的结果数量
区别:第一个是有条件的:第二个没有条件 $this->db->count_all_results(); 允许你获得某个特定的Active Record查询所返回的结果数量.可以使用Acti ...
- 七 异常处理的两种方式(创建全局异常处理器&自定义异常)
1 创建全局异常处理器 实现HandlerExceptionResolve接口 package com.springmvc01; import javax.servlet.http.HttpServl ...
- 前端传递数据到后台的两种方式;创建一个map或者创建一个FormData对象
一.构建一个map getAllDeptAllUsers(){ const modleCode = {'auditMenuId': this.auditMenuId, 'enterpriseId': ...
- Java中String两种不同创建方式的区别及intern的用法
一, Java有两种创建字符串的方式, String str1 = "abc"; String str2 = new String("abc"); 用双引号创建 ...
- k8s创建资源的两种方式(5)
一.创建方式分类: 命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1.用 kubectl 命令直接创建,比如: kubectl run httpd-app --image=reg ...
随机推荐
- 10.1. Java性能调优
Java性能调优是一个复杂且重要的主题,它涉及到了JVM.垃圾收集器.内存管理.多线程.代码优化等多个方面.在本节中,我们将对Java性能调优的基本概念和方法进行简要介绍. 10.1.1. 理解性能指 ...
- 自然语言处理 Paddle NLP - 预训练语言模型及应用
什么是语言理解? 关于疫情的一段对话: 中国:我们这边快完了 欧洲:我们这边快完了 中国:我们好多了 欧洲:我们好多了 挑战: 语言的复杂性和多样性 多义/同义/歧义现象 灵活多变的表达形式 语言背后 ...
- 使用Mybatis生成树形菜单-适用于各种树形场景
开发中我们难免会遇到各种树形结构展示的场景.比如用户登录系统后菜单的展示,某些大型购物网站商品的分类展示等等,反正开发中会遇到各种树形展示的功能,这些功能大概处理的思路都是一样的,所以本文就总结一下树 ...
- 【后端面经】MySQL主键、唯一索引、联合索引的区别和作用
目录 0. 简介 1. 主键 2. 唯一索引 3. 联合索引 4. 索引对数据库操作的影响 5. 其他索引 5.1 普通索引 5.2 全文索引 5.3 前缀索引 6. 总结 7. 参考资料 0. 简介 ...
- 前端Vue自定义加载中loading加载结束end组件 可用于分页展示 页面加载请求
前端Vue自定义加载中loading加载结束end组件 可用于分页展示 页面加载请求, 请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=132 ...
- 【笔试实战】LeetCode题单刷题-编程基础 0 到 1【二】
1822. 数组元素积的符号 题目链接 1822. 数组元素积的符号 题目描述 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 . 如果 x 是负数,返 ...
- Java版人脸跟踪三部曲之一:极速体验
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于<Java版人脸跟踪三部曲>系列 -& ...
- Vue基础介绍
一.Vue基本介绍 1.Vue.js目前最火的的一个前端框架,三大主流前端框架之一.与其他重量级框架不同的是,Vue采用自底向上增量开发的设计.Vue的核心库只关注视图层. 2.Vue.js是一套构建 ...
- FPGA学习之乒乓操作
乒乓操作学习记录如下: 乒乓操作" 是一个常常应用于数据流控制的设计思想, 典型的乒乓操作方法如下图 所示: 乒乓操作的处理流程为:输入数据流通过" 输入数据选择单元"将 ...
- 2021-10-09 Core学习
控制器学习 如果有ID参数,根据前面定义的{controller=Home}/{action=Index}/{id?} 可以换成一下格式 页面学习 视图 基架搭建 然后在nuget控制台添加 Add- ...