INT
- это NUMBER
s подтип . Хотя вы видите это как NUMBER
, значения, хранящиеся в столбце, будут целыми числами. Например:
SQL> create table test (col int);
Table created.
SQL> desc test
Name Null? Type
----------------------------------------- -------- ----------------------------
COL NUMBER(38)
SQL> insert into test (col) values (1.3324);
1 row created.
SQL> insert into test (col) values (0.000034);
1 row created.
SQL> insert into test (col) values (1001);
1 row created.
SQL> select * from test;
COL
----------
1
0
1001
SQL>
Если вы создадите другую таблицу с типом данных столбца NUMBER
и отметите USER_TAB_COLUMNS
, вы увидите разницу в их масштабе (которая представляет количество цифр слева (или справа, в зависимости от знака) десятичной точки). ). Хорошо указывать как точность, так и масштаб (чтобы вы могли контролировать его). Если вы опустите масштаб (при создании столбцов), его значение по умолчанию будет 0 (ноль). Больше информации здесь: https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832
Пример:
SQL> create table test1 (col number);
Table created.
SQL> select table_name, data_precision, data_scale From user_tab_columns where column_name = 'COL';
TABLE_NAME DATA_PRECISION DATA_SCALE
------------------------------ -------------- ----------
TEST 0
TEST1
SQL>