DB2创建function(一)
案例一:根据传入的值返回一个满足条件的值。适用于查询的字段(经过较复杂逻辑得出)
CREATE FUNCTION "FAS"."GET_ALL_NAME" ( "A_ID" BIGINT )
RETURNS VARCHAR(9000)
SPECIFIC "SQL131107190046233"--SPECIFIC名称不能与其他FUNCTION的重复
LANGUAGE SQL
NOT DETERMINISTIC
EXTERNAL ACTION
READS SQL DATA
CALLED ON NULL INPUT
INHERIT ISOLATION LEVEL WITHOUT LOCK REQUEST
INHERIT SPECIAL REGISTERS
BEGIN ATOMIC
--声明变量
DECLARE A_CURR_ID BIGINT DEFAULT 0 ;
DECLARE A_CURR_NAME VARCHAR(50) DEFAULT '' ;
DECLARE SRETURN VARCHAR(1000) DEFAULT '' ;
--设置变量值
SET A_CURR_NAME= (SELECT NAME FROM FA_DEPARTMENT WHERE ID=A_ID);--当前名称
SET A_CURR_ID= (SELECT PARENT_ID FROM FA_DEPARTMENT WHERE ID=A_ID);--当前名称
SET SRETURN='_'||A_CURR_NAME;
--WHILE循环
WHILE A_CURR_ID>0 DO
SET A_CURR_NAME= (SELECT NAME FROM FA_DEPARTMENT WHERE ID=A_CURR_ID);--当前名称
SET A_CURR_ID= (SELECT PARENT_ID FROM FA_DEPARTMENT WHERE ID=A_CURR_ID);--当前名称
SET SRETURN='_'||A_CURR_NAME||SRETURN;
END WHILE;
--返回值
RETURN SRETURN;
END;
说明:该示例传入参数A_ID,通过A_ID查询相关数据。并将结果以字符串格式返回。
该方法可在sql语句中调用。如下:
select GET_ALL_NAME(21) from SYSIBM.SYSDUMMY1
使用场景:可将其作为一个sql查询语句的列字段值,也可以用在where字句中。
若需要Function返回结果集请看:DB2创建function(二)
DB2创建function(一)的更多相关文章
- DB2创建function(二)
DB2创建function(一),介绍将function内容作为字段值,或做为一个where条件的情况. DB2创建function(二),介绍返回的内容为一个集合的情况.调用结果集的示例如下: se ...
- db2 创建function报错
create function fun_fw_sfyczy(pi_operunitid varchar(2)) returns varchar(2)LANGUAGE SQL BEGIN ATOMIC ...
- How to create DB2 user function easily by DB Query Analyzer 6.03
How to create DB2user function easily by DB Query Analyzer 6.03 Ma Genfeng (Guangdong Unitoll Servic ...
- JavaScript 基础(二) - 创建 function 对象的方法, String对象, Array对象
创建 function 对象的两种方法: 方式一(推荐) function func1(){ alert(123); return 8 } var ret = func1() alert(ret) 方 ...
- DB2创建数据库常用参数详解
转自http://czmmiao.iteye.com/blog/1335801 DB2创建数据库常用参数详解 本文只介绍DB2 create database语法中的常用参数http://publib ...
- 如何在开启了log-bin的MySQL Server中创建FUNCTION
在MySQL主从复制机器的master的数据库中创建function,报出如下错误: Error Code: 1418. This function has none of DETERMINISTIC ...
- DB2创建EMP和DEPT并进行基础操作
一.DB2创建EMP和DEPT测试表 --DB2创建测试表 CREATE TABLE TEST.EMP (EMPNO INTEGER NOT NULL, ENAME ), JOB ), MGR INT ...
- db2创建nickname
db2创建nickname创建步骤 1.创建 server create server servername type DB2/AIX version 10.5 wrapper drda authid ...
- DB2创建序列
一.创建序列 序列是按照一定的规则生产的数值,序列的作用非常的大,比如银行交易中的流水号,就是记录每笔交易的关键字段. 通过create sequence语句创建序列,具体语法如下: >> ...
随机推荐
- CSS 关于屏幕适配REM
这里不多说了,想详细了解的可以参考 2350305682 的博客 https://www.cnblogs.com/annie211/p/8118857.html 不想多深究,想先实现的看这(移动端): ...
- 【读书笔记】iOS-网络-HTTP-URL结构
http://user:password@hostname:port/absolute-path?query. http: 协议 user:password@ 认证 hostname: 主机名 ...
- Nginx的rewrite(地址重定向)剖析
1.rewrite语法: 指令语法:rewrite regex replacement[flag]; 默认值:none 应用位置:server.location.if rewrite是实现URL重定向 ...
- SQLServer 2008(R2)如何开启数据库的远程连接
SQL Server 2008 R2如何开启数据库的远程连接 by:授客 QQ:1033553122 SQL Server 2008默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的S ...
- IE浏览器“自定义安全级别”不能设置的原因
“自定义安全级别”和滑块都是灰色,不允许设置.可能的原因: 1.组策略里面设置了: 2.启用了IE增强的安全设置: 程序卸载->选择windows组件->取消增强的安全设置
- Android 2018最新的三方库
文章出处https://blog.csdn.net/qq_32368129/article/details/78749880 1.MaterialStepperView 它是用Material Des ...
- SerialPort类的用法与示例
转:https://www.cnblogs.com/hwBeta/p/6926363.html Microsoft .Net框架SerialPort类的用法与示例 从Microsoft .Net 2. ...
- Finding the source of signals on Linux with strace, auditd, or systemtap
inux and UNIX® like operating systems commonly use signals to communicate between processes. The use ...
- python基础学习21----进程
python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程. 进程与线程的使用有很多相似之处,有关线程方面的知识请参考https://w ...
- Android中两个Activity之间简单通信
在Android中,一个界面被称为一个activity,在两个界面之间通信,采用的是使用一个中间传话者(即Intent类)的模式,而不是直接通信. 下面演示如何实现两个activity之间的通信. 信 ...