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语句创建序列,具体语法如下: >> ...
随机推荐
- Vue入门系列(五)Vue实例详解与生命周期
Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一) http://www.cnblogs.com/gdsblog/p/78 ...
- MySQL缓存机制详解(一)
本文章拿来学习用||参考资料:http://www.2cto.com/database/201308/236361.html 对MySql查询缓存及SQL Server过程缓存的理解及总结 一.M ...
- jQuery EasyUI datagrid列名包含特殊字符会导致表格错位
首先申明:本文所述的Bug存在于1.3.3以及更高版本中,其它低版本,本人未测试,太老的版本不想去折腾了. 洒家在写前端的SQL执行工具时,表格用了 jQuery EasyUI datagrid,因为 ...
- 用JS实现控制浏览器F12与右键功能
本文出至:新太潮流网络博客 用JS实现控制浏览器F12与右键功能,防止恶意窃取代码,或其他直接复制进去就好 //禁用右键 document.oncontextmenu = function () { ...
- jboss4.2.3 屏蔽响应头server信息
1.修改配置deploy/jboss-web.deployer/service.xml <Connector port="8080" protocol="HTTP/ ...
- 【转】Java学习---内存泄露与溢出的区别
Java内存泄露与溢出的区别 Java内存泄漏就是没有及时清理内存垃圾,导致系统无法再给你提供内存资源(内存资源耗尽): 而Java内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于 ...
- Windows7 添加快速启动栏
解决方案: 1.右击任务栏空白处,选择“工具栏”,单击“新建工具栏”: 2.输入“%userprofile%\AppData\Roaming\Microsoft\Internet Explorer\Q ...
- C#程序如何捕捉未try/catch的异常——不弹“XXX已停止工作”报错框
诚意满满直接上代码: static void Main(string[] args) { //Main函数中增加此句 AppDomain.CurrentDomain.UnhandledExceptio ...
- 第7章 Linux文件与目录管理
目录与路径 相对路径与绝对路径 目录的相关操作 . 代表此层目录 .. 代表上层目录 - 代表前一个工作目录 ~ 代表"目前用户身份"所在的文件夹 ~account 代表accou ...
- [python]python官方原版编码规范路径
1.进入python官方主页:https://www.python.org/ 2.按如下图进入PEP Index 3.选择第8个,即为python的规范