sql >> Databasteknik >  >> RDS >> Oracle

Oracle DB - Ställ in ingångsnummer till exakt längd

Ställ in datatypen för den kolumnen till varchar(11) . Om det måste vara exakt 11 tecken varje gång kommer en kontrollbegränsning att garantera att:check (length(phone_no) = 11) . För att garantera längd och "numeralitet" (alla siffror, inga bokstäver), använd

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

Om du måste använda en numerisk typ - och detta är en dålig idé - är din bästa insats förmodligen numerisk(11,0).

En kontrollbegränsning kan hjälpa dig att begränsa intervallet för giltig inmatning, men inga numeriska typer lagrar inledande nollor. Du måste hoppa igenom onödiga och undvikande ringar om något som 00125436754 är ett giltigt telefonnummer.



  1. MySql Cursor - Skapa en procedur

  2. Hur man konverterar en Unix-tidsstämpel till ett datum-/tidsvärde i SQL Server

  3. Hur kan jag varna mitt program om en specifik databastabell har lagts till/uppdaterats/raderat en post på den?

  4. Migration främmande nyckel kontra vältaliga relationer i Laravel