I am trying to project features from a geodatabase and write into an enterprise geodatabase connection. I have permissions to create data and the name I am using also works, but I keep getting error:

ERROR 000210: Cannot create output

It is being loaded in sde:oracle11g database. I am facing issues with only point feature classes

Field names

Field names

My code:

in_dataset = r'R:\50_Scratch\4AnnaArora\MigrationProject\test\test_data.gdb\Test'
out_dataset = r'R:\50_Scratch\4AnnaArora\MigrationProject\test.sde\WS_Test'
out_coor_system= 4326
sr = arcpy.Describe(in_dataset).spatialReference
arcpy.Project_management(in_dataset, out_dataset,out_coor_system, sr)
  • It works if i try to use the same code, same output dataset but the input dataset is a shape file! It just does not work with gdb
    – Anna Arora
    Jan 17 '20 at 10:24
  • Please use the edit button beneath your question to revise it with any additional information.
    – PolyGeo
    Jan 17 '20 at 12:01
  • 1
    Please Edit the question to include the field names in the two data sources, and to specify the RDBMS in which the table is being loaded (reserved words vary)
    – Vince
    Jan 17 '20 at 12:33
  • You've clipped off the images near the really long names, so it's impossible to determine if you exceed the 30-character maximum of Oracle.
    – Vince
    Jan 17 '20 at 13:18
  • 1
    Oracle has a 30- char limit. Enterprise geodatabase has a 31-char limit, because Oracle was the first RDBMS, and the constant is 32 (31 + nil terminator). File geodatabase limit is 63 (64?).
    – Vince
    Jan 17 '20 at 13:47

The 000210 error is principally caused by two potential errors:

  • The table name is not valid (often a reserved word)

  • One or more of the columns are not valid (reserved word or too many characters)

The ArcSDE communication library has constants which limit table and column name buffers to 32 bytes (31 characters, plus a closing terminator).

Oracle itself has naming limits of 30 characters for table and column names (it is now possible to exceed these, but ArcGIS doesn't use the additional syntax to support this, so the limit exists).

The reason you can load a shapefile is that the dBase III+ format used by Esri for shapefile attributes has a 10-character column name limitation, which truncates the actual name (which may be hidden by the "Alias" property in the metadata). When you source from file geodatabase (which has a 64-codepoint column name limitation) the full name is submitted for Oracle table creation, and the SQL fails.

The solution is to truncate the column names to 30 characters (though the alias can be wider). I try not to exceed 24 characters, just for sanity in display width, and then I don't need to worry about hitting hard database limits.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.