Oracle – 9 – Numbers

Numbers are essential data types in Oracle and are commonly used for representing numeric values in various applications and database operations. In Oracle, numbers can be integers or floating-point values, and they are used for calculations, counting, and other numerical tasks. Here’s a brief description of numbers in Oracle:

  1. Numeric Data Types:
    • Oracle provides several numeric data types to represent numbers with varying precision and scale, including:
      • NUMBER: A versatile numeric data type that can represent integers, fixed-point, or floating-point numbers. It offers a high degree of precision and flexibility.
      • INTEGER: A data type specifically for whole numbers (integers) without a fractional component.
      • DECIMAL: A fixed-point numeric data type that allows you to specify the precision and scale, making it suitable for financial calculations.
      • FLOAT and BINARY_FLOAT: Floating-point data types for representing approximate real numbers.
      • BINARY_DOUBLE: A floating-point data type with higher precision compared to BINARY_FLOAT.
  2. Declaration and Usage:
    • You can declare numeric variables or constants in PL/SQL using the appropriate numeric data type. For example:
    DECLARE quantity NUMBER := 100; price DECIMAL(10, 2) := 24.99; BEGIN -- Perform numeric operations with variables total_cost := quantity * price; END;
  3. Arithmetic Operations:
    • Oracle supports standard arithmetic operations for numbers, including addition, subtraction, multiplication, division, and modulus (remainder). These operations can be performed using mathematical operators like +, -, *, /, and %.
    • DECLARE num1 NUMBER := 10; num2 NUMBER := 5; result NUMBER; BEGIN result := num1 + num2; — Addition result := num1 – num2; — Subtraction result := num1 * num2; — Multiplication result := num1 / num2; — Division result := MOD(num1, num2); — Modulus (remainder) END;
  4. Precision and Scale:
    • The NUMBER and DECIMAL data types allow you to specify precision (total number of digits) and scale (number of decimal places) to control the level of accuracy in numeric values.
    DECLARE salary NUMBER(8, 2); -- A number with 8 total digits and 2 decimal places BEGIN salary := 55000.75; END;
  5. Rounding and Truncation:
    • Oracle provides functions like ROUND and TRUNC to round or truncate numeric values to a specified number of decimal places.
    DECLARE value NUMBER := 123.456; rounded_value NUMBER; truncated_value NUMBER; BEGIN rounded_value := ROUND(value, 2); -- Round to 2 decimal places (123.46) truncated_value := TRUNC(value, 1); -- Truncate to 1 decimal place (123.4) END;

Numbers are fundamental for performing mathematical calculations and representing quantitative data in Oracle databases and applications. Understanding the various numeric data types, precision, and arithmetic operations is crucial for database developers and analysts working with Oracle databases.