sql >> Database >  >> RDS >> Oracle

Oracle DB - Invoernummer instellen op exacte lengte

Stel het gegevenstype voor die kolom in op varchar(11) . Als het elke keer exact 11 tekens moet zijn, garandeert een controlebeperking dat:check (length(phone_no) = 11) . Gebruik

. om lengte en "cijfer" (alle cijfers, geen letters) te garanderen
check (length(phone_no) = 11 and 
       regexp_like(phone_no, '^[[:digit:]]{11}$')
)

Als u een numeriek type moet gebruiken - en dit is een slecht idee - is uw beste gok waarschijnlijk numeriek (11,0).

Een controlebeperking kan u helpen het bereik van geldige invoer te beperken, maar numerieke typen slaan voorloopnullen niet op. Je zult door onnodige en vermijdbare hoepels moeten springen als zoiets als 00125436754 is een geldig telefoonnummer.



  1. Zoek de datum en tijd die het dichtst bij de opgegeven datum en tijd ligt in de mysql-query

  2. Krijg insert_id voor alle rijen die zijn ingevoegd in een enkele mysqli-query (meerdere waarden)

  3. Verfijning van Oracle DG40DBC

  4. Hoe horizontale waarden van een tabel te binden aan verticale waarden van een andere tabel in de Oracle-database