Firebird Internal Function

火鸟自定义内置函数,方便、强大。

特点:只可以返回单值,不能返回多行。

若想返回多行table,可以定义存储过程 Procedure,用suspend返回。

自定义内置函数,示例:返回当前批次号。

 1 create or alter function BATCH_NO
 2 returns varchar(10)
 3 AS
 4 declare variable mth varchar(10);
 5 declare variable bt varchar(10);
 6 begin
 7   /* Function Text */
 8   select extract(month from current_date) from rdb$database into :mth;
 9   if(char_length(:mth) = 1) then
10     mth = '0' || mth;
11 
12   select extract(year from current_date) || :mth || extract(day from current_date)
13   from rdb$database into :bt;
14   return bt;
15 
16 end

调用方式: select batch_no() from rdb$database;  结果:20180722

或者这样也行:

1 insert into m_user (code)
2 values(batch_no());
原文地址:https://www.cnblogs.com/jonney-wang/p/9350647.html