This esri document shows field names and index names limit is 128 (SQL Server)
Enterprise geodatabase size and name limits
But this esri document shows "ArcGIS imposes a limit of 16 characters for attribute index names."
Attribute indexes in the geodatabase
if the limit is 16, this must be a BUG? ArcGIS Enterprise 11.and ArcGIS Pro 3.3/3.4/3.5 should be allowed to create (and maintain) field names and attribute index names up to 128
ArcGIS Pro should not truncate the name down to 16
We should not have to use the SQL Server database tools to create and maintain the attribute index so we can go up to the 128 characters (esri warns about fooling with the enterprise geodatabase directly using SQL Server tools without Enterprise/ArcGIS Pro tools and probably would not /support that)
Any additional details about doing this with traditional versioning, core tables, adds table, delete table, history table, etc.?
This cannot be "as designed" because the 128 change in ArcGIS for filed names has to be the same behavior to create indexes with names up to the limit of the underlying DBMS (128)
Reminds me of the old Arc/Info Coverage limitations shown in this Library of Congress Collection
https://www.loc.gov/preservation/digital/formats/fdd/fdd000284.shtml
Naming restrictions: There are some limitations on the names that can be used by coverages. The following are some limitations on the coverage names:
And the old ArcGIS 10 Resource Center for Fields in coverage attribute tables
https://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00140000000q000000.htm
INFO uses the following conventions to define the format of each item (field) in a data file:
Item name | Any name with up to 16 alphanumeric characters |
Item width | Number of spaces (or bytes) used to store item values |
Output width | Number of spaces (or bytes) used to display item values |
Item type | The data type of the item |
Number of decimals | The number of digits to the right of the decimal place for item types that hold decimal numbers |
Hello! I'm the Esri Support AI Chatbot, a digital assistant designed to help you troubleshoot ArcGIS issues and answer any technical questions you might have. For more details about what I can do, please select the question mark icon at the top of our chat.
How can I help you today?
Yes, ArcGIS Enterprise continues to impose a limit of 16 characters for attribute index names. This restriction is designed to ensure compatibility across supported databases and facilitate seamless data sharing between different geodatabases.
The 16-character limit for attribute index names in ArcGIS is imposed to ensure compatibility across all supported databases and facilitate data sharing between geodatabases. Specifically:
This restriction is based on the smallest allowable length within supported databases.
Oracle Spatial is an optional feature of the Oracle Database Enterprise Edition that provides advanced geospatial capabilities. It is designed to store and manage spatial data, such as geographic features represented by points, lines, and polygons. Oracle Spatial supports the SDO_Geometry type, which is implemented using Oracle's extensible object-relational type system.
Key features of Oracle Spatial include:
Oracle Locator is a subset of Oracle Spatial capabilities and is included as a standard feature in Oracle Database Standard and Enterprise editions.
Index name | 16 if created in ArcGIS. ArcGIS can read up to the database limit for indexes created outside ArcGIS. |
ArcGIS imposes a limit of 16 characters for index names created within ArcGIS in most databases. However, for SQL Server and SQLite, index names can be up to 128 characters. If the index is created outside ArcGIS, ArcGIS can read up to the database's maximum limit for index names.
Additionally:
If you need further details about specific databases or scenarios, feel free to ask!
https://docs.oracle.com/en/database/oracle/oracle-database/23/odpnt/EFCoreIdentifier.html
Oracle Database limit identifier names, such as table names, column names, and primary key names, to 128 bytes. Oracle Entity Framework Core will automatically truncate identifier names that are too long to this specified length, except for table names. This prevents both the user and Entity Framework Core from creating identifiers beyond the maximum character limit of the Oracle Database and receiving an "ORA-00972: IDENTIFIER IS TOO LONG" error” in most instances.
If the identifiers use multi-byte characters, the maximum identifier length may require a setting with character expansion ratio in mind to assure that all identifiers can be created in the Oracle database. For example, if the Oracle database character set is UTF8, a single character may require up to 4 bytes. Thus, to guarantee that all identifiers can be created in an Oracle database that does not support long identifiers, the RelationalAnnotationNames MaxIdentifierLength field can be set to 32 bytes (i.e. 128 bytes divided by 4). By default, Oracle EF Core MaxIdentifierLength has a value of 128.
Even if your EF Core model does not use identifier names longer than what your database version supports, you should consider setting MaxIdentifierLength to a lower value. ODP.NET and Entity Framework Core auto-generate schema object names from models. They may, on occasion, append additional characters to the names, which could exceed the maximum number of characters the database permits. By setting the MaxIdentifierLength, you prevent EF Core from causing the ORA-00972 error inadvertently.