我有一种情况,我需要使我的标量函数确定性,以便在同一查询中使用时不会每次都执行它。我阅读并了解到我们需要同时使用两者
确定性
也
没有外部行动
使 DETERMINISTIC 函数工作,以便它不会在查询中每次都执行。如果我没有错?此外,确定性行为的范围是单个查询。
My UDF 的签名如下:
create or replace FUNCTION my_udf(myLIST VARCHAR(1000))
RETURNS integer
LANGUAGE SQL
DETERMINISTIC
NO EXTERNAL ACTION
BEGIN ATOMIC
< code for making HTTP servlet call >
END
我正在使用以下查询来测试 my_udf() 函数:
select my_udf('admin1,admin2'),my_udf('admin1,admin2') from sysibm.sysdummy1
但是我看到每次都在调用我的 servlet,因此每次都在执行函数。
我需要知道在 DETERMINISTIC 函数的实现方面我做错了什么,或者对它们的用法/功能有错误的想法?