0

I have a fairly large database on a slow network and I am using a third 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.

  1. 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 elsewhere?
  2. What are possible causes?
  3. How would this be related to exporting the database?
2
  • 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, 2010 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, 2010 at 17:25

2 Answers 2

1

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.

3
  • 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, 2010 at 17:20
  • Justin, you get null values for the column GUID or for the entire row? Aug 3, 2010 at 19:50
  • Only in the GUID column and only within the string in various places as in the example above.
    – Justin
    Aug 4, 2010 at 17:15
0

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/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.