更新时间:2025-06-04 GMT+08:00
remainder
数据库类型与版本
- 源库类型与版本:Oracle所有版本。
- 目标库类型与版本:GaussDB V2.0-3.1之前版本。
转换替代方案:
CREATE OR REPLACE FUNCTION dsc_ora_ext.dsc_fn_remainder /* This function is used to replicate the behaviour of Oracle REMAINDER */ ( i_numerator IN NUMBER , i_denominator IN NUMBER ) RETURN NUMBER IMMUTABLE AS v_remainder NUMBER; BEGIN IF i_numerator IS NULL OR i_denominator IS NULL -- If anyone of the inputs is NULL, return NULL THEN RETURN NULL; END IF; v_remainder := MOD(i_numerator, i_denominator); IF ABS(v_remainder/i_denominator) > 0.5 -- If the remainder (mod) is more than half of demonitor, do the below -- i.e., use ROUND instead of FLOOR used in MOD THEN v_remainder := i_numerator - (ROUND(i_numerator*1.0 / i_denominator) * i_denominator); END IF; RETURN v_remainder; END;