|
I think there is some default casting going on here, as I'm just reading up
on that. I am testing the following:
CAST( '50' || substr( digits( cmcust), 3, 7) AS DECIMAL(9,0))
and results so far look good.
Since doing an UPDATE with the original code didn't provide any diagnostic
feedback, I constructed the following query:
select cmcust as orig_cmcust,
substr( cmcust, 3, 7 ) as substr_cmcust_3_7,
substr( digits( cmcust), 3, 7) as substr_digits_cmcust,
CAST( substr( digits( cmcust), 3, 7) AS DECIMAL(9,0)) as CAST_cmcust
from Lib1/Customer
Results (best viewed in fixed font):
ORIG_CMCUST SUBSTR_CMCUST_3_7 SUBSTR_DIGITS_CMCUST CAST_CMCUST
5,086,931 86931 5086931 5,086,931
5,073,765 73765 5073765 5,073,765
5,073,858 73858 5073858 5,073,858
6,062,249 62249 6062249 6,062,249
9,113,707 13707 9113707 9,113,707
So, it appears that using a SUBSTR on a packed-decimal without an
intervening DIGITS causes havoc. The second column is a 7-character result
with two blanks trailing the five digits. While I haven't determined WHY
it
does this, I believe I have determined how to resolve it.
Thanks,
- Dan
On Tue, Dec 21, 2010 at 12:38 PM, Alan Campin <alan0307d@xxxxxxxxx> wrote:
I don't see how this would work at all if CMCUST is a packed 9,0. I wouldguess
have converted CMCUST to a string, then done the substr and then cast the
result back to a dec 9,0. Based on substringing a packed 9,0 I would
the results could be anything.ago
On Tue, Dec 21, 2010 at 10:18 AM, Dan <dan27649@xxxxxxxxx> wrote:
The messed-up data I mentioned in my previous thread several minutes
&wasHowever,
caused by:
Update Lib1/Customer Set cmcust = '50' || substr( cmcust , 3, 7 )
cmcust is a 9.0 packed decimal. The goal is to REPLACE the first two
digits
of cmcust with 50.
In another library I used this in, the update worked as expected.
for reasons unknown to me, the update in this library replaced the 3rd
list4thout
digits of cmcust with 50. Any ideas?
FWIW, we just upgraded to V6R1 with cum PTF TL60215 applied. I've been
of the OS admin side of things for too long to know whether that is alist
recent
cum PTF.
TIA,
- Dan
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxx--
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
To post a message email: MIDRANGE-L@xxxxxxxxxxxx--
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.