Warum würden Sie eine Feldgröße deklarieren, die größer ist als die eigentlichen Daten, die Sie darin speichern möchten?
Wenn die ursprüngliche Version Ihrer Anwendung US- und kanadische Adressen unterstützt (was ich aus der Tatsache ableiten kann, dass Sie diese Größen in Ihrer Frage aufrufen), würde ich das Feld als VARCHAR2 deklarieren (9) (oder VARCHAR2 (10), wenn Sie den Bindestrich in ZIP + 4 Feldern speichern möchten). Selbst wenn man sich die Postsendungen anderer Länder an Postleitzahlen anschaut, würde VARCHAR2 (9) oder VARCHAR2 (10) für die meisten, wenn nicht für alle anderen Länder ausreichen.
Auf der ganzen Linie können Sie immer die Spalte ändern, um die Länge zu erhöhen, sollte dies erforderlich sein. Aber es ist im Allgemeinen schwer zu verhindern, dass jemand irgendwo aus dem einen oder anderen Grund beschließt, "kreativ" zu werden und 50 Zeichen in ein VARCHAR2 (50) -Feld zu stopfen (d. H., Weil sie eine andere Zeile auf einem Versandetikett haben wollen). Sie müssen sich auch mit dem Testen der Grenzfälle befassen (wird jede Anwendung, die ein ZIP-Handle anzeigt, 50 Zeichen haben?). Und mit der Tatsache, dass Clients, wenn sie Daten aus der Datenbank abrufen, im Allgemeinen Speicher basierend auf der maximalen Größe der Daten, die abgerufen werden, und nicht der tatsächlichen Länge einer gegebenen Zeile zuweisen. Wahrscheinlich keine große Sache in diesem speziellen Fall, aber 40 Bytes pro Zeile könnte für einige Situationen ein anständiger Stück RAM sein.
Nebenbei bemerkt, könnten Sie auch die Postleitzahl und die Erweiterung +4 separat speichern (zumindest für US-Adressen).Es ist im Allgemeinen nützlich, Berichte nach geografischen Regionen erstellen zu können. Häufig möchten Sie alle Daten in einer Postleitzahl zusammenfassen, anstatt sie durch die Erweiterung +4 zu trennen. An diesem Punkt ist es nützlich, nicht versuchen zu müssen, die ersten 5 Zeichen für die Postleitzahl auszusortieren.
Nach http: //en.wikipedia .org/wiki/List_of_postal_codes, die längste ist 12 Zeichen, wenn Sie das '-' speichern, sonst 11 –
Nützlicher Link, aber die Genauigkeit ist vielleicht ein bisschen out. EG listet australische Postleitzahlen als 7 Zeichen auf, obwohl sie tatsächlich 4 sind. Ref: http://en.wikipedia.org/wiki/Postcodes_in_Australia und die Postleitzahl-Liste, die unter http://www1.auspost.com.au verfügbar ist/Postleitzahlen /. – rossp
re: mein vorheriger Kommentar - das bedeutet nicht, dass diese Liste nicht als Leitfaden nützlich ist. Wenn man davon ausgeht, dass sich die Liste auf der Seite längerer Postleitzahlen befindet, beträgt die längste Länge 9 Zeichen, sodass 16 Zeichen oder mehr ausreichend Platz zum Atmen bieten. – rossp