Sono preoccupato per gli spazi extra inseriti nei campi VARCHAR2 e per problemi di confronto. So che ci sono modi per confrontarli usando tagliandoli o convertendoli, ma temo che renderà il mio codice disordinato e pieno di bug.
In realtà è proprio il contrario. L'uso di CHAR forzerà le tue stringhe a una lunghezza fissa riempiendole di spazi se sono troppo corte. Quindi, quando si confrontano i CHAR con le stringhe normali in qualsiasi app stia utilizzando i dati, quell'app dovrebbe aggiungere un ritaglio ogni volta. In altre parole, VARCHAR2 è la scelta che porta naturalmente a un codice più pulito.
In generale dovresti sempre usa VARCHAR2, a meno che tu non abbia un motivo molto specifico per cui desideri una colonna CHAR.
Se sei preoccupato per le stringhe che hanno spazi extra nella parte anteriore o finale, allora ci sono alcune opzioni che ti vengono in mente:
- Assicurati che qualsiasi processo stia eseguendo gli inserti li rifinisca prima di inserirli.
- Aggiungi un vincolo di controllo sulla colonna che assicuri che string =trim(string).
- Aggiungi un trigger a livello di riga prima dell'inserimento che esegue un taglio sulle stringhe quando vengono inserite.
- Assicurati di tagliare le stringhe ogni volta che esegui query sulla tabella