Help Center/
Database and Application Migration UGO/
User Guide/
Syntax Conversion/
Risky Custom Functions/
Replacing Custom Oracle Functions with GaussDB Functions/
remainder
Updated on 2025-06-07 GMT+08:00
remainder
Database Type and Version
- Source database type and version: all Oracle versions
- Target database type and version: GaussDB of versions earlier than V2.0-3.1
Function replacement syntax:
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;
Parent topic: Replacing Custom Oracle Functions with GaussDB Functions
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
The system is busy. Please try again later.
For any further questions, feel free to contact us through the chatbot.
Chatbot