PDA

View Full Version : Gepackte Werte in Alpha-Feld



harbir
23-08-13, 11:26
Hallo,

ich habe eine Datei mit einem Feld Char(50), in das von einem Programm u.a. auch gepackte num. Werte geschrieben werden.

Wie kann ich diese Werte per SQL wieder lesbar machen?

Wäre hier für einen Tipp dankbar...

VG
harbir

Fuerchau
23-08-13, 11:28
select hex(Feld) .... from myfile

harbir
23-08-13, 11:35
select hex(Feld) .... from myfile

super, das hat mir schon mal weiter geholfen.

Wenn ich das Ganze jetzt wieder als num. Wert will und nur die Stellen 1-4 im CHAR-Feld die gepackte Zahl beinhaltet, wie komm ich da am elegantesten ran?

B.Hauser
23-08-13, 11:55
Schreib einen 2-Zeiler in RPG mit einer überlagerten Datenstruktur, das den konvertierten Alpha-Wert ermittelt und ggf. zurückgibt.
Und wenn Du's unbedingt in SQL brauchst, dann registriere die RPG-Funktion als User Defined Function.

Birgitta

harbir
23-08-13, 12:09
hallo Birgitta,

die Lösung in RPG hab ich ja, doch hier werden von extern für QlickView die Daten abgerufen.

Das mit der Funktion muss ich mal prüfen...

Danke
harbir

Fuerchau
23-08-13, 13:11
Vergiss die Funktion.
Ich mach das hier nun nicht für QlickView (mein FTIS ist sowieso besser :)), sondern für das Forum :):

dec(substr(hex(Feld), 1, 4), 4, 0)

4 stellen halte ich für ein Gerücht, gepackte sind immer ungradzahlig. Prüfe das mal.
Wenn das Vorzeichen nicht "F" ist, kannst du per "Case substr(...)" ja prüfen, ist der obige "dec(...") dann halt mit -1 zu multiplizieren.