Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have a farily large database on a slow network and I am using a thrid party tool to update data which calculates other fields and so on.

I have a guid string with an empty box (weird glyph - seen in shapefile tables before) in the middle of the string for just a few records, seemingly random.

{D62D[][]1F1-CA71-4490-B940-046E61989DA6} {A16659DF-7131-4[][]E-8DFF-DBF71257DC08}

the empty boxes are not brackets..I just did that for the example - they are empty boxes.

Question1. I would like to use python or some other script/sql to run the entire database 300,000 records to see if this is present else where?

Question2. What are possible causes?

Question3. How would this be related to exporting the database?

Thanks.

Justin

share|improve this question
    
I bet that weird glyph is a unicode (two-byte-wide international) character. Those don't belong in GUIDs, which are hexadecimal. –  mwalker Aug 3 '10 at 16:59
    
That is along the lines that we were thinking - but how did they get there? The third party tools are written in VBA. Isn't the database (APDM) creating the guid error-ed weird glyph? I've seen them before in shapefiles that caused error in labeling when doing labeling - had to delete them. I am also hearing it may be a low memory issue. Does that have credence - for future mitigation? Thanks. –  Justin Aug 3 '10 at 17:25
add comment

2 Answers 2

I'm not sure about the broken GUIDs - but what is the 3rd party tool you're using? Maybe it's breaking them up? You could try to generate new GUIDs for them (if I'm not mistaken you need to stop versioning, and re-add GUIDs - correct if I'm wrong).

Q1) You need to scan your database and see where the weird empty boxes appear, correct? You can use a SearchCursor in Python in each feature class you need to check, bring the row/column value to a variable, and test if [] appears. It's pretty straightforward to get the records and to test the strings. Check this.

Q2) As far as I can see it, it may be your 3rd party tool.

Q3) This can break the versioning system inside ArcSDE, but if you are going to export a version, reconcile to the level you need, and export it. The GUID field can be deleted after it's out of DBMS.

Thats all I can answer given the details you provided.

share|improve this answer
    
The third party tool allows us to add point data then finds all lines within a specified distance to each point and creates records for these events in another table ( I assume this is calling the database to create guids ). Thanks George I can create a searchcursor but what character would I be matching empty box - how to represent that in python - there not [] that was just for the example? When I export out just the table (not entire db) I get Null values for these guid error-ed values. –  Justin Aug 3 '10 at 17:20
    
Justin, you get null values for the column GUID or for the entire row? –  George Aug 3 '10 at 19:50
    
Only in the GUID column and only within the string in various places as in the example above. –  Justin Aug 4 '10 at 17:15
add comment

To identify what characters are being represented by the 'boxes', you could use a combination of Oracle's SUBSTR() and ASCII() functions. These 'boxes' could be used to represent several different characters, so you will want to check these values for all of your records. I recently found a case where a record contained the 'Bell' character.

To figure out the first 'box':

ASCII(SUBSTR('{D62D[][]1F1-CA71-4490-B940-046E61989DA6}',6,1))

or

SELECT ASCII(SUBSTR(myColumn),6,1) FROM myTable;

Once you get the ASCII codes, you can look them up here: http://www.ascii-code.com/

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.