循序渐进丨MogDB / openGauss 的三种函数稳定性关键字

一、Oracle 中类似的函数稳定性关键字(DETERMINISTIC)

在 Oracle 里,function有着一个DETERMINISTIC参数,它表示一个函数在输入不变的情况下输出是否确定,只要输入的参数一样,返回的结果一定是一样的,以保证函数对于任何输入总是完全相同的方式处理参数。Oracle 的内置函数UPPER、TRUNC等都是DETERMINISTIC函数。具体例子如下:

    ----带DETERMINISTIC的现象
    create or replace function f_t(i_p int) return number DETERMINISTIC is
    i_rtn number;
    begin
    i_rtn := i_p * dbms_random.value(1,10);
    return i_rtn;
    end;



    select LEVEL,f_t(1) FROM DUAL CONNECT BY LEVEL