ukulele
Datenbank-Guru
- Beiträge
- 5.337
Es ist ja irgendwie immer das Selbe. Man schreibt ein kleines, 500 Zeilen SQL Script das irgendwo dynamisch Code generiert und ausführt und dann hakt es an einer klitzekleinen Stelle und man sucht sich nen Wolf.
Beispiel: Ich prüfe mehrere Spalten einer Tabelle und erstelle eine Statistik über die Werte. Das Script werde ich noch posten wenn es fertig ist. In jedem Fall muss ich mit EXEC() arbeiten und in 1% der Fälle habe ich irgendwo einen arithmetischen Überlauffehler. In diesem Fall habe ich es nach langer Suche gefunden:
Die Spalte ist ein INT, bilde ich die Summe über die Spalte (was auch bei avg() im ersten Schritt passiert) ist der INT zu klein. Konvertierung in BIGINT schafft Abhilfe. Was aber wenn die Spalte Nachkommastellen hat und Werte zwischen 0 und 1 beinhaltet? Dann killt mir mein BIGINT meinen Durchschnitt...
Jedenfalls bin ich häufig in der Situation einen Fehler erkennen zu müssen. Kennt irgendjemand einen Weg dies zu bewerkstelligen?
Beispiel: Ich prüfe mehrere Spalten einer Tabelle und erstelle eine Statistik über die Werte. Das Script werde ich noch posten wenn es fertig ist. In jedem Fall muss ich mit EXEC() arbeiten und in 1% der Fälle habe ich irgendwo einen arithmetischen Überlauffehler. In diesem Fall habe ich es nach langer Suche gefunden:
Code:
SET @value_avg = ( SELECT avg(' + @column_name + ')
FROM ' + @table_name + '
WHERE ' + @column_name + ' IS NOT NULL )
Jedenfalls bin ich häufig in der Situation einen Fehler erkennen zu müssen. Kennt irgendjemand einen Weg dies zu bewerkstelligen?