Hello,
Bisher ausprobiert habe ich
* binaray
* cast()
* convert()
* hex()
* unhex()* conv()
Bisschen kompliziert, aber so scheint es in der einen Richtung schon mal zu gehen:
posting
-> 0x0010001B0074005E00620039
Pro Tupel werden zwei Bytes benutzt.
select conv(hex(substring(
posting
, -2)), 16, 10)zahl
from postings where id=1223;
zahl -> 57
Ich finde einfach den Rückweg nicht.
Wenn ich ein Tupel abtrenne
0x0010001B0074005E0062 0039
dann die Konvertierung durchführe um die Incremnetierung vorzunehmen, bekomme ich es einfach hinterher nicht wieder rückkonvertiert und wieder hinten angehängt.
Es gehen entweder die führenden Nullen des Tupels verloren oder ich bekomme ungewöhnliche Werte heraus. conv(conv(Wert, 16, 10) +1, 10, 16) klappt nicht so, wie ich mir das gedacht hatte.
Wenn ich den gesamtgen Wert (Achtung, im Extremfall 254 Bytes lang) um eins erhöhen könnte, wäre mir auch geholfen. Ich muss nur vorher überprüfen, dass ich keinen Überlauf bekomme, der Maximalwert des Tupel (FFFF) also nicht überschritten wird. Dann muss ich einen Fehler auslösen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg