Номера телефонов обычно хранятся в виде строк, а не чисел. Во-первых, число на самом деле не число. Например, не имеет смысла добавлять два из них вместе. Во-вторых, начальные нули могут иметь значение.
Итак, я бы порекомендовал:
telephone varchar2(10) check (length(telephone) = 10)
Если вы хотите сохранить его как число, вы можете использовать диапазон:
telephone number(10, 0) check (telephone >= 1000000000 and
telephone < 10000000000
)
Это явно, что нет десятичных разрядов.