Fixing Asterisks in Number Fields in a DBF
Somehow, I have a table with 77,000 records and in some cases some of the data in number fields came out to be asterisks. I’ve tried all manner of selecting these records to change the data to 0 (which would be an indicator that there is no valid data for that field), but nothing seems to work.
So I tried a few things. Â One thing that works on SOME fields is VAL(STR(Field)). Â Note that image below.
Code:SELECT dep_time, STR(dep_time), ISDIGIT(STR(dep_time)),VAL(STR(dep_time)) FROM trip
I tried that with a decimal field and it didn’t work off the bat (it truncated the decimals completely…or maybe it didn’t, but it looks like it did). Â So changed the string functions to “STR(O_Latitude,12,8)” (which matches the field spec). Â It gave me two decimal places, but I want more, so I found the SET DECIMALS TO command that fixed it.
Code:Â SELECT O_Latitude, STR(O_Latitude) as str_fn, ISDIGIT(STR(O_Latitude)) as dig_str_fn,VAL(STR(O_Latitude)) as val_str FROM trip
Code: SELECT O_Latitude, STR(O_Latitude,12,8) as str_fn, ISDIGIT(STR(O_Latitude,12,8)) as dig_str_fn,VAL(STR(O_Latitude,12,8)) as val_str FROM trip
From:
SET DECIMALS TO 8
SELECT O_Latitude, STR(O_Latitude,12,8) as str_fn, ISDIGIT(STR(O_Latitude,12,8)) as dig_str_fn,VAL(STR(O_Latitude,12,8)) as val_str FROM trip
From this I was able to write an update SQL query to fix the asterisk problem.
Tags: dbf, Foxpro, poor quality work, sql
You must be logged in to post a comment.