Had to repair some packed data the other day. It was a one-time task and the replacement values were always = '0' so the fix didn't need any particular logic. Testing for 'F' was sufficient.
Set badcolumn = 0
Where left(hex(badcolumn),1) <> 'F'
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Jeff Young
Sent: Monday, February 11, 2013 10:45 AM
To: Midrange Systems Technical Discussion
Subject: Re: SQL: how to filter out spaces in fields defined as packed numeric
SELECT f1.f2.etc. from Datafile where substr(OrderQty,1,1) = x'40'
Replace the f1,f2,etc with field names from the file, but not the OrderQty which SQL will see as invalid data.
On Mon, Feb 11, 2013 at 11:34 AM, Stone, Joel <Joel.Stone@xxxxxxxxxx> wrote:
I have a file with hex '40' spaces in a field OrderQty defined to DDS
as pack numeric.
I am using SQL to read the file and SQL croaks when it reads these
nasty invalid records.
Is it possible to filter out these records in SQL?
For example something like:
SELECT * from Datafile where left(OrderQty,1) = *blanks
Here is the SQL error:
Data mapping error on member SQLTEMP1.
A data mapping error occurred on field OrderQty in
1 -- There is data in a decimal field that is not valid.
Sr. Programmer Analyst