Hi everyone
Since this first appeared, I have been trying to find the online article that helped me on this
Unfortunately, I have had no luck
Anyway - here is an SQL method
In one particular file, we have a field char(8) called INOBP
Here is the SQL
Select a.INOBP AS On_Hand_Char, dec(
dec(substr(a.inobp,1,8)||substr(hex(a.inobp),18,1),9,0) *
(case when substr(hex(a.inobp),17,1)='D'
then -1 else 1 end)
,9,0) AS On_Hand_Nbr
from prodfa.itmmstp a
where
dec(
dec(substr(a.inobp,1,8)||substr(hex(a.inobp),18,1),9,0) *
(case when substr(hex(a.inobp),17,1)='D'
then -1 else 1 end)
,9,0) < 0 and a.isuffx in ('0011') and a.typflg <> '!'
and a.istat <> 'D'
Here is the result
ON_HAND_CHAR ON_HAND_NBR
00000000K 2-
Alan Shore
E-mail : ASHORE@xxxxxxxx
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
'If you're going through hell, keep going.'
Winston Churchill
-----Original Message-----
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of Hiebert, Chris
Sent: Friday, February 28, 2020 3:20 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: [EXTERNAL] RE: parse a negative number out of a before image string
The function allows dynamic precision and scale. They are Inputs.
DCL-S FLD2 VARCHAR(128);
DCL-S fld1 CHAR(7);
Dcl-s x Int(5);
Dcl-s Y Int(5);
You pass your string.
fld1 = '002632J';
x = 7;
y = 2;
FLD2 = UTL_FMTNUMFORDEC(fld1: x: y :*ON:*OFF);
And you get this out as a String: "26.32-"
Chris Hiebert
Senior Programmer/Analyst
Disclaimer: Any views or opinions presented are solely those of the author and do not necessarily represent those of the company.
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Jay Vaughn
Sent: Friday, February 28, 2020 11:51 AM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: parse a negative number out of a before image string
thanks chris but data precision and scale must be dynamically coded
jay
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.