Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle DB - Définir le numéro d'entrée à la longueur exacte

Définissez le type de données de cette colonne sur varchar(11) . S'il doit contenir exactement 11 caractères à chaque fois, une contrainte de vérification garantira que :check (length(phone_no) = 11) . Pour garantir la longueur et la "numéralité" (tous les chiffres, pas de lettres), utilisez

check (length(phone_no) = 11 and 
       regexp_like(phone_no, '^[[:digit:]]{11}$')
)

Si vous devez utiliser un type numérique - et c'est une mauvaise idée - votre meilleur pari est probablement numeric(11,0).

Une contrainte de vérification peut vous aider à restreindre la plage d'entrées valides, mais aucun type numérique ne stocke de zéros non significatifs. Vous devrez sauter à travers des cerceaux inutiles et évitables si quelque chose comme 00125436754 est un numéro de téléphone valide.