sql - 如何在 DB2 中创建一个返回序列值的函数?

标签 sql function db2

如何在 DB2 中创建一个从序列中获取值并返回它的函数?

应该可以在 select 或 insert 语句中使用该函数,例如:

select my_func() from xxx
insert into xxx values(my_func())

基本上我在一个复杂的公式中使用序列值,我想将计算封装在一个函数中。

编辑:我不是在问如何简单地从序列中获取下一个值。

最佳答案

CREATE FUNCTION "MYSCHEMA"."MY_FUNC"(PARAM1 VARCHAR(4000))
     RETURNS INT
SPECIFIC SQL110520140321900 BEGIN ATOMIC
     DECLARE VAR1 INT;
     DECLARE VAR2 INT;
     SET VAR1  = NEXTVAL FOR MY_SEQ;
     SET VAR2 = VAR1 + 2000; --or whatever magic you want to do
     RETURN VAR2;
END

试试看:
SELECT MY_FUNC('aa') FROM SYSIBM.SYSDUMMY1;

关于sql - 如何在 DB2 中创建一个返回序列值的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992308/

相关文章:

输出 XML 文件的 Java 程序 - 多个问题

mysql - SQL 匹配列与同一个表中的另一个列,IN 语句不起作用

c - 从函数返回字符串时出错

stored-procedures - DB2 存储过程 : Dynamically Building a Select Statement for cursor

javascript - 如何使用 javascript 函数创建可以调用 javascript 函数的 polymer 元素

python - 如何在这种情况下正确使用嵌套列表

sql - 使用 DB2,我可以检查存储过程何时被修改吗?

sql - 超过1个sql查询结果

sql - 在 T-SQL 中创建复杂的数据透视表

php - HOw to SELECT * (all) 从上个月的最后一天到下个月的第一天