两种方式,创建有返回值的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 ...
随机推荐
- @Deprecated注解的使用
被注解@Deprecated标记的程序元素是不鼓励使用的程序元素,通常是因为它很危险,或者是因为存在更好的替代方案. 除了对象自身引用自己用@Deprecated标记的方法外,其他情况使用@Depre ...
- SQL Sever 各版本的适用环境
很多用visual studio做开发的朋友经常会用到sqlserver数据库,但是往往在选择的时候就不知道该使用哪个版本了,今天就给大家分享一下sqlserver各个版本之间的区别,以及各个版本之间 ...
- List子集合__小记
List集合的子实现类的特点: ArrayList: 底层数据结构是数组的形式,满足数组结构的特点:查询快,增删慢 从线程安全问题来看:线程不安全的,不同步,执行效率高 Vector: 底层数据结构是 ...
- ChatGPT帮助工程师写代码:从功能模块完善到成功执行,实现需求
在软件开发过程中,经常会遇到需要完善功能模块.调试代码和解决问题的情况.为了提高效率,我们可以借助人工智能技术,例如OpenAI的ChatGPT语言模型,来协助我们进行代码编写和调试.本文将介绍一个案 ...
- 【go语言】2.1.3 函数的定义和使用
在 Go 语言中,函数是一种代码抽象和复用的方式.函数可以接受参数,执行特定的操作,并返回结果. 函数的定义 函数的定义以 func 关键字开始,后面跟着函数名.参数列表.返回值列表(可选)以及函数体 ...
- Win11 开启 telnet
'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件. 首先我们打开底部"开始菜单",如图所示.接着打开其中的"设置". 然后进入左边的&quo ...
- 自定义javascript中call、bind、apply方法
call.bind.apply都是Function原型上的方法,用于改变this的指向 自定义函数 js中的call.bind.apply是用c++代码实现的,我们这里使用js代码做一个模式,没有把所 ...
- jwt实现token鉴权(nodejs koa)
为什么需要token 在后台管理系统中,我们通常使用cookie-session的方式用于鉴权,jwt实现token鉴权(nodejs koa) 但这种方式存在着以下问题 比如cookie的容量太小. ...
- 【go笔记】TCP编程
前言 TCP服务端的处理流程 监听端口 接收客户端请求建立连接 创建goroutine处理链接 示例代码:TCP服务端 package main import ( "net" &q ...
- 《CUDA编程:基础与实践》读书笔记(2):CUDA内存
1. 全局内存 核函数中的所有线程都能够访问全局内存(global memory).全局内存的容量是所有设备内存中最大的,但由于它没有放在GPU芯片内部,因此具有相对较高的延迟和较低的访问速度,cud ...