Die Ausgangsdaten sind also in einer Tabelle enthalten, deren Feldnamen und Feldreihenfolge sich von Jahr zu Jahr ändern.
Dabei können Felder entfallen oder neue hinzukommen.
Eine Software soll natürlich im Kern nicht verändert werden.
Aber was ist bei dir der Kern? Dazu ein Beispiel.
Es soll eine Ergebnismenge aus einer Menge von Feldern berechnet werden, deren Inhalt für den Anwendungsfall fest definiert ist.
Diese Vorschrift soll sich nicht ändern. Es muss dafür gesorgt werden, das diese Felder immer verfügbar sind.
Eine Möglichkeit wäre die Tabelle durch eine View zu kapseln, die du Jahr für Jahr anpasst.
Innerhalb der View können Hilfstabellen oder Datenbankprozeduren benutzt werden, um die Daten aufzubereiten.
Code:
CREATE VIEW V_EINGANGSDATEN(
SPALTE1,
SPALTE2,
SPALTE3)
AS
select v01 spalte1, v03 spalte2, v05b + v05a spalte3
from t_eingangsdaten
where (v02 = 0)
;
select spalte1, spalte2, spalte3 from v_eingangsdaten;
Alle Abfragen richten sich nur an die View, Änderungen sind dann nur an einer Stelle notwendig.