Neden içinde depolamayı beklediğiniz gerçek verilerden daha büyük bir alan boyutu beyan edersiniz?
Uygulamanızın ilk sürümü ABD ve Kanada adreslerini destekleyecekse (bu, sorunuzda bu boyutları belirttiğiniz gerçeğinden anladığım kadarıyla), alanı VARCHAR2 (9) (veya VARCHAR2 ( 10) kısa çizgiyi ZIP + 4 alanlarında saklamayı düşünüyorsanız). Başkalarının ülkeler arasında posta kodlarına yaptığı gönderilere bakıldığında bile, VARCHAR2 (9) veya VARCHAR2 (10) diğer tüm ülkeler olmasa da çoğu için yeterli olacaktır.
İhtiyaç duyulması halinde uzunluğu artırmak için satırın aşağısında her zaman sütunu DEĞİŞTİRebilirsiniz. Ancak, birilerinin "yaratıcı" olmaya karar vermesini ve şu veya bu nedenle bir VARCHAR2 (50) alanına 50 karakter doldurmasını engellemek genellikle zordur (örneğin, bir nakliye etiketinde başka bir satır istediği için). Ayrıca sınır durumlarını da test etmelisiniz (ZIP görüntüleyen her uygulama 50 karakter işleyecek mi?). Ve istemciler veri tabanından veri alırken, genellikle belirli bir satırın gerçek uzunluğuna değil, getirilecek verinin maksimum boyutuna göre bellek ayırıyorlar. Muhtemelen bu özel durumda çok büyük bir anlaşma değil, ancak satır başına 40 bayt, bazı durumlar için iyi bir RAM yığını olabilir.
Bir kenara, posta kodunu ve +4 uzantısını ayrı ayrı depolamayı da düşünebilirsiniz (en azından ABD adresleri için). Coğrafi bölgeye göre raporlar oluşturabilmek genellikle yararlıdır ve +4 uzantısıyla ayırmak yerine sık sık her şeyi bir posta koduna yerleştirmek isteyebilirsiniz. Bu noktada, ZIP kodu için ilk 5 karakteri SUBSTR yapmaya çalışmak zorunda kalmamak faydalıdır.