DB2创建function(一)

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

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语句中调用。如下

?





1

select GET_ALL_NAME(21) from
SYSIBM.SYSDUMMY1

可将其作为一个sql查询语句的列字段值,也可以用在where字句中

时间: 2024-11-05 22:51:02

DB2创建function(一)的相关文章

DB2创建function(二)

DB2创建function(一),介绍将function内容作为字段值,或做为一个where条件的情况. DB2创建function(二),介绍建立返回的内容为表集合.调用示例如下 ? 1 select * from table(GET_EFFECTIVE_USER_ID(21))--GET_EFFECTIVE_USER_ID为建立的function函数. 建立的function示例如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

怎样用MySQL创建function

以前使用SQL SERVER的时候经常用function,对一些数据的处理比较方便,现在数据库转移到mysql上以后,同样也希望能保留相同的功能,庆幸的是mysql也支持function,现来分享下在mysql中怎样创建function 工具/原料 MySQL MySQL Workbench 方法/步骤 1在MySQL中创建function的写法和SQL SERVER还是有区别的,先看一下在MySQL中正确的写法是什么样,在这个function中目的是返回根据传进年龄参数计算出同龄人有多少,并将

如何在开启了log-bin的MySQL Server中创建FUNCTION

在MySQL主从复制机器的master的数据库中创建function,报出如下错误: Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators va

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 Servicesincorporated, Guangzhou510300) Abstract  The latest version of DB QueryAnalyzer is 6.03 In DB Query Analyzer 6.03, without changing any Windows OS s

db2 创建实例 The host name "fordatabase" is invalid. Specify a valid host name.

有这样一个现象,在DB2安装后,使用db2icrt 来创建实例时,提示主机名无效,提示如下: [plain] view plain copy [[email protected] instance]# ./db2icrt -u db2inst1 db2inst1 The host name "centos-0.msdomain" is invalid. Specify a valid host name. DBI1922N  The host name is not valid. Ex

DB2创建库 数据恢复

例:数据库:PRODB2用户 :DB2ADMIN/DB2ADMIN备份库路径:D:/bank 一.恢复数据库1.启动数据库运行->db2cmd->db2Db2=>start db managerDb2=>force application allDb2=>drop database tjns db2 => 2.创建数据库CREATE DATABASE ppdev0309 ON D:\ USING CODESET GBK TERRITORY CN 3.连接数据库conne

创建function实现hive表结果导出到mysql

1. 创建临时function (这里两个包都是hive自带到,不需要自己开发的,可以根据名称查找对应的版本) add jar /opt/local/hive/lib/hive-contrib-2.3.3.jar; add jar /opt/local/hive/lib/mysql-connector-java-5.1.35-bin.jar; CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.generic

DB2创建视图view

? 1 2 3 4 create view v_table1(col1,col2,col3...)--视图名(字段一,字段二,字段三...)  as --后跟查询语句   select col1,col2,col3...   from table1; 可像查询表一样查询视图,视图是一个查询结果的映射.不能做增删改操作

MySQL创建方法错误:This function has none of DETERMINISTIC, NO SQL

创建function时 出错信息: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) 原因: 这是我们开启了bin-