On 11 Feb 2013 09:57, Richard Casey wrote:
If the bad data in OrderQty is only blanks, this should work.
SELECT *
FROM datafile
WHERE SUBSTR(HEX(OrderQty),1,2) <> '40'
Bad idea for two reasons. If the Packed BCD represents an
even-precision versus an odd-precision, the first digit is always zero;
i.e. testing for '040' would be more appropriate. Besides that however,
the 5P00 decimal value 40755 which is the Packed BCD value represented
in storage as x'40755F', will *incorrectly* be omitted from the results;
i.e. SUBSTR(HEX(OrderQty), 1, 2) = '40' and that is an entirely
*correct* Packed Decimal representation.