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.

Update mytable
Set badcolumn = 0
Where left(hex(badcolumn),1) <> 'F'


-----Original Message-----
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

Try this:
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.

Jeff Young
Sr. Programmer Analyst

This thread ...


Return to Archive home page | Return to MIDRANGE.COM home page