Name

ABS

Synopsis

The ABS function returns the absolute value of the input. The specification for the ABS function is:

FUNCTION ABS (n NUMBER) RETURN NUMBER;

The ABS function can help simplify your code logic. For example, in one program we reviewed, line items and amounts for a profit and loss statement were footed or balanced. If the variance on the line amount was greater than $100, either positive or negative, that line item was flagged as “in error.” The first version of the code that implemented this requirement looked like this (variance_table is a PL/SQL table holding the variance for each line item):

IF variance_table (line_item_nu) BETWEEN 1 AND 100 OR
   variance_table (line_item_nu) BETWEEN -100 AND -1 
THEN
   apply_variance (statement_id);
ELSE
   flag_error (statement_id, line_item_nu);
END IF;

There are two ways to express this logic. First, instead of hardcoding the maximum allowable variance, we put the value in a named constant. Second, we use ABS so that we perform the range check only once. With these changes, the above code can be rewritten as follows:

IF ABS (variance_table (line_item_nu)) 
   BETWEEN min_variance AND max_variance 
THEN
   apply_variance (statement_id);
ELSE
   flag_error (statement_id, line_item_nu);
END IF;

Get Oracle PL/SQL Programming, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.