在做 SAP 技术设计时,很多团队把数据库函数理解成存储过程的一个小变体,这其实会带来不少误判。真正准确的理解方式是:database function的价值不在于它也能写一段数据库逻辑,而在于它天然就是查询语句的一部分。放到 SAP HANA 和 ABAP 的语境里看,它是把数据密集型逻辑下推到数据库层的重要抓手,也是很多高性能读模型背后的关键技术。SAP HANA 的 SQLScript 本来就是为代码下推而设计的,它的目标之一,就是减少大量数据从数据库复制到应用服务器,再由应用层做二次加工的开销。(SAP Help Portal)再把视角收窄到database function本身。SAP HANA 官方文档把它归在user-defined function的范畴里,并明确分成两类:table UDF和scalar UDF。这两类函数在输入输出能力、函数体支持的特性、以及在 SQL 语句中的消费方式上都不同。表函数只能出现在 SQL 的FROM子句中