Ein kompatibler Basistyp kann wichtige Details verlieren
Präzision, Skala und verlustfreie Übertragung getrennt bewerten.
Ein Vergleich, der Klammerangaben aus Typnamen entfernt, reduziert NUMBER(12,2) auf NUMBER und NUMERIC(6,0) auf NUMERIC. Eine Mappingtabelle kann diese Basistypen kompatibel nennen. Dabei sind jedoch Präzision und Skala verschwunden: Präzision beschreibt hier die Gesamtzahl der Dezimalstellen, Skala die Stellen rechts vom Dezimalpunkt. Unser Beispielziel bietet weniger Stellen und keine Nachkommastellen. Ein brauchbares Prüfprofil erhält diese Dimensionen und meldet Unterschiede gesondert. Selbst passende Strukturangaben beweisen keine verlustfreie Migration: Werte, Rundung, Constraints und Semantik brauchen ihren eigenen Vertrag. Der Kurs führt keinen Transfer und keine Datenbankoperation aus.
Ein Beispiel
Der erfundene Wert 123456.78 passt in die Quellbeschreibung NUMBER(12,2). Das Ziel NUMERIC(6,0) kann den Nachkommateil nicht unverändert darstellen. Der Lern-Comparator meldet daher scale:2→0 und precision:12→6. Diese Meldungen zeigen ein Prüfbedürfnis; sie ersetzen keinen konkreten Migrationsplan.
Python 3.11 · Lehrbeispiel
source = {"base": "decimal", "precision": 12, "scale": 2}
target = {"base": "decimal", "precision": 6, "scale": 0}
differences = [key for key in ("precision", "scale")
if source[key] != target[key]]
print(differences)
Erwartete Ausgabe
['precision', 'scale']