Dlaczego zadeklarowałeś rozmiar pola większy niż rzeczywiste dane, które spodziewasz się w nim przechowywać?
Jeśli początkowa wersja aplikacji będzie obsługiwać adresy w USA i Kanadzie (co wywnioskowałem z faktu, że wywołujesz te rozmiary w pytaniu), zadeklaruję pole jako VARCHAR2 (9) (lub VARCHAR2 (10), jeśli chcesz przechowywać łącznik w ZIP + 4 pola). Nawet patrząc na posty, które inni poczynili dla kodów pocztowych w różnych krajach, VARCHAR2 (9) lub VARCHAR2 (10) byłyby wystarczające dla większości, jeśli nie wszystkich innych krajów.
W dół linii można zawsze ZMIENIĆ kolumnę w celu zwiększenia długości w razie potrzeby. Generalnie trudno jest jednak powstrzymać kogoś, przed podjęciem decyzji, aby uzyskać "kreatywność" i wprowadzić 50 znaków do pola VARCHAR2 (50) z jednego powodu lub innego (tj. Ponieważ chcą mieć kolejną linię na etykiecie wysyłkowej). Masz również do czynienia z testowaniem przypadków granicznych (czy każda aplikacja, która wyświetla uchwyt ZIP, będzie miała 50 znaków?). Z tym, że gdy klienci pobierają dane z bazy danych, zazwyczaj alokują pamięć na podstawie maksymalnego rozmiaru pobieranych danych, a nie faktycznej długości danego wiersza. Prawdopodobnie nie jest to wielka sprawa w tym konkretnym przypadku, ale 40 bajtów na wiersz może być przyzwoitą porcją pamięci RAM w niektórych sytuacjach.
Na marginesie możesz również rozważyć przechowywanie (przynajmniej dla adresów w USA) kodu pocztowego i rozszerzenia +4 osobno.Generalnie przydatna jest możliwość generowania raportów według regionu geograficznego i często chcesz umieścić wszystko razem w kodzie pocztowym, zamiast rozbijać je za pomocą rozszerzenia +4. W tym momencie nie trzeba próbować SUBSTR outować pierwszych 5 znaków dla kodu pocztowego.
Według http: //en.wikipedia .org/wiki/List_of_postal_codes, najdłuższy z 12 znaków, jeśli przechowujesz "-", inaczej 11 –
Przydatny link, jednak jego dokładność może być trochę nie na miejscu. EG wyświetla listę australijskich kodów pocztowych jako 7 znaków, podczas gdy w rzeczywistości są to 4. Ref: http://en.wikipedia.org/wiki/Postcodes_in_Australia i lista kodów pocztowych dostępna pod adresem http://www1.auspost.com.au/kody pocztowe /. – rossp
re: mój poprzedni komentarz - to nie znaczy, że ta lista nie jest przydatna jako przewodnik. Zakładając, że lista błądzi po stronie dłuższych kodów pocztowych, najdłuższa długość to 9 znaków, więc 16 znaków lub w tym miejscu powinno dać ci dużo miejsca do oddychania. – rossp