¿Por qué declararía un tamaño de campo más grande que los datos reales que espera almacenar en él?
Si la versión inicial de su aplicación admite direcciones de EE. UU. Y Canadá (lo que estoy deduciendo por el hecho de que menciona esos tamaños en su pregunta), declararía el campo como VARCHAR2 (9) (o VARCHAR2 (10) si tiene la intención de almacenar el guión en los campos ZIP + 4). Incluso si miramos las publicaciones que otros han hecho sobre códigos postales en distintos países, VARCHAR2 (9) o VARCHAR2 (10) serían suficientes para la mayoría, si no para todos los demás países.
Más abajo, siempre puede ALTERAR la columna para aumentar la longitud en caso de necesidad. Pero generalmente es difícil evitar que alguien, en algún lugar, decida ser "creativo" y meter 50 caracteres en un campo VARCHAR2 (50) por una razón u otra (es decir, porque quiere otra línea en una etiqueta de envío). También debe lidiar con la prueba de los casos límite (¿cada aplicación que muestre un ZIP maneja 50 caracteres?). Y con el hecho de que cuando los clientes recuperan datos de la base de datos, generalmente asignan la memoria en función del tamaño máximo de los datos que se obtendrán, no la longitud real de una fila determinada. Probablemente no es un gran problema en este caso específico, pero 40 bytes por fila podría ser un pedazo decente de RAM para algunas situaciones.
Como un aparte, también podría considerar almacenar (al menos para las direcciones de EE. UU.) El código postal y la extensión +4 por separado.En general, es útil poder generar informes por región geográfica y, con frecuencia, puede querer juntar todo en un código postal en lugar de desglosarlo por la extensión +4. En ese punto, es útil no tener que tratar de SUBSTRAR los primeros 5 caracteres para el código postal.
Según http: //en.wikipedia .org/wiki/List_of_postal_codes, el más largo tiene 12 caracteres, si está almacenando el '-', sino 11 –
Enlace útil, sin embargo, su precisión puede estar un poco fuera. Por ejemplo, enumera los códigos postales australianos como 7 caracteres, cuando de hecho son 4. Ref: http://en.wikipedia.org/wiki/Postcodes_in_Australia y la lista de códigos postales disponible en http://www1.auspost.com.au/códigos postales /. – rossp
re: mi comentario anterior - eso no significa que esta lista no sea útil como guía. Suponiendo que la lista se equivoca en el lado de los códigos postales más largos, la longitud más larga es de 9 caracteres, por lo que 16 caracteres aproximadamente le darán suficiente espacio para respirar. – rossp