Anmelden

View Full Version : SQL hex in dec umwandeln



Jonny B.
25-08-11, 09:16
Kan jemand helfen?
Wir haben eine Datei in der ein Hexwert von Stelle 19 in der Länge 2 steht. Wir sollten den Wert auslesen und konvertieren.

select hex(substr(DATEN, 19, 2)),
dec(hex(substr(DATEN, 19, 2) ), 4, 0)
from ppsdta/montb funktioniert solange der Wert numerisch zwischen 1 und 9 liegt alle anderen Werte bringen Fehler.
HEX DEC
0001 1
0005 5
0007 7
0007 7
0009 9
000B ++++++
001F ++++++ Wie kann ich SQL dazu bringen den Wert als Hexwert zu erkennen?
Für jede Hilfe dankbar.

B.Hauser
25-08-11, 10:07
In welchem Format soll der 2-stellige numerische Wert eigentlich sein?
Hexa-Dezimal, d.h.FF = 255 (16*16 - 1)
oder gepackt 255F ist ebenfalls 255
oder gezont F1F5 ist 15

Das sollte zunächst geklärt werden.

Birgitta

rmittag
25-08-11, 10:09
das kann so nicht funktionieren:

a) der Hexwert wird erkannt, das sieht man in der Spalte Hex

b) hex gibt einen character string zurück

DB2 UDB for AS/400 SQL Reference Seite 165

The HEX function returns a hexadecimal representation of a value.

The argument can be any value.

The result of the function is a character string. If the argument can be null, the result can be null; if the argument is null, the result is the null value.


bei character -> dec Konvertierung gilt:

DB2 UDB for AS/400 SQL Reference Seite 155

Character to Decimal

character-expression

An expression that returns a value that is:

A character string representation of a decimal number
A character string representation of an integer
A character string representation of a floating-point number


Da ist wahrscheinlich etwas Programmieren angesagt. Ich würde einen 3-Zeiler in RPG erstellen, als SQL Function, aber vielleicht gib es noch andere Lösungen ...