SQL>
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
2 num_dec DECIMAL(5,2);
3 num_int INTEGER(5,2);
4 num_dbl DOUBLE PRECISION(5);
5 num_num NUMERIC(5,2);
6 num_real REAL(5);
7 num_sint SMALLINT(5,2);
8 --decimal precision / 0.30103 = binary precision,
9 --so 5/.30103 = 16.6. Round it up to 17.
10 num_flt FLOAT(17);
11 BEGIN
12 num_dec := 123.456;
13 num_int := 123.456;
14 num_dbl := 123.456;
15 num_num := 123.456;
16 num_real := 123.456;
17 num_sint := 123.456;
18 num_flt := 123.456;
19 DBMS_OUTPUT.PUT_LINE(num_dec);
20 DBMS_OUTPUT.PUT_LINE(num_int);
21 DBMS_OUTPUT.PUT_LINE(num_dbl);
22 DBMS_OUTPUT.PUT_LINE(num_num);
23 DBMS_OUTPUT.PUT_LINE(num_real);
24 DBMS_OUTPUT.PUT_LINE(num_sint);
25 DBMS_OUTPUT.PUT_LINE(num_flt);
26 END;
27 /
123.46
123.46
120
123.46
120
123.46
123.456
PL/SQL procedure successfully completed.
SQL>