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

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

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

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

 create or alter function BATCH_NO
returns varchar(10)
AS
declare variable mth varchar(10);
declare variable bt varchar(10);
begin
/* Function Text */
select extract(month from current_date) from rdb$database into :mth;
if(char_length(:mth) = 1) then
mth = '' || mth; select extract(year from current_date) || :mth || extract(day from current_date)
from rdb$database into :bt;
return bt; end

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

或者这样也行:

 insert into m_user (code)
values(batch_no());
05-21 18:33