火鸟自定义内置函数,方便、强大。
特点:只可以返回单值,不能返回多行。
若想返回多行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());