DB2 z/OS   DB2 LUW
z/OS CICS VTAM

OORexx

Home







Kleine ooRexx bespiele oder Funktionen

SQLEXEC bereitet BIGINT nicht auf, darum eine kleine rutiene die das macht

If (    OUTSQLDA.I.SQLTYPE = 492 | OUTSQLDA.I.SQLTYPE = 493  ) Then Do
         OUTSQLDA.I.SQLDATA = BIGINT_FUER_OOREXX_AUFBEREITEN( OUTSQLDA.I.SQLDATA)
 End




BIGINT_FUER_OOREXX_AUFBEREITEN:
/* REXX auf WIN/Linunx braucht die db2ar.dll die nicht mehr von IBM */
/* gepflegt wird, BIGINT wird als Sting Char(8) angezeigt und ist   */
/* somit nicht verwendbar Darum muss das aufbereiten manuell laufen */
/* wert  1 0100000000000000 muss umgedreht werden 0000000000000001  */
/* wert -4 FCFFFFFFFFFFFFFF wird FFFFFFFFFFFFFFFC                   */

BIGINT_WERT = Arg(1)

NUMERIC  DIGITS 20
HexWert = ""
Do hexi = Length(c2x(BIGINT_WERT)) to     2 by -2       
   HexWert = Hexwert || Substr(c2x(BIGINT_WERT), hexi - 1, 2)
 End
/* Retwert = x2d(Hexwert, 16)  */

Return x2d(Hexwert, 16)


Oder einfach so    

BIGINT_FUER_OOREXX_AUFBEREITEN:
NUMERIC  DIGITS 20

Return x2d(c2x(Reverse(Arg(1))), 16)