是否可以在没有上传编译文件的权限的情况下为 DB2 创建用户定义的聚合函数..?

Is it possible to create a user defined aggregate function for DB2 without the privilege to upload compiled files..?

在我开始一个最终被证明是无望的探索之前,我想请教那些更有经验的人...

是否可以在没有上传编译文件的权限的情况下为 DB2 创建用户定义的聚合函数..?这是针对 iSeries v7r3m0 上 AS400 的 DB2。

我的第一个想法是通过我的 SQL 客户端 DBeaver 5.2.5 将 UDAF 创建为一个普通的 SQL 函数。我以前用这种方式创建过常规 UDF,但是我不确定是否可以用这种方式编写聚合函数。我还没有在网上找到任何例子,这个 one IBM document 不适合我的版本。

如果在 SQL 中无法做到这一点,那么下一个选项是 JAVA。我的技能很基础,但足以探索这种可能性,但这是我第一次在 DB2 上这样做。据我了解,DB2 的 JAVA 函数需要将编译后的文件上传到服务器,但我没有这样做的权限,这可能是主要障碍。除非我在这一点上不正确..?

我的下一个想法是 JAVA 函数是否可以 在服务器上编写和编译..? 例如,我可以将 JAVA 代码写在我的 SQL 客户端的脚本 window,所以当我 运行 脚本时, JAVA 由服务器 编译 ,并且然后 存储在服务器上..? 或者可能有一个 JAVA 开发客户端像 IBM Data Studio 一样连接到服务器..?

或者……什么……?任何建议将不胜感激。

我将解释我希望创建的 UDAF。它类似于 SUM() 之类的任何内置 UDAF,但它是基于字符的,其名称为 GetCommonWords。输入将是 CHAR(n) 类型的 table 列。输出也将是 CHAR(n),带有一串所有记录开头共有的单词。

考虑列 "FOOD" 的以下短语:

用法为 GetCommonWords(Food),结果为所有人通用的词:peanut butter.

Db2 for i 即使在当前的 7.4 版本中也没有 CREATE FUNCTION (aggregate) 语句。 https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/db2/rbafzcreatef.htm

您应该知道 Db2 for i、Db2 for z 和 Db2 (for LUW) 本质上是不同的产品,虽然有一定数量的通用语法和功能,但您确实需要查看手册页(和 Web文章等)针对您的特定平台(最好是版本级别)