No se puede abrir ArcCatalog Database Connection Base de datos SQL Tablas con nombres de campo de más de 31 caracteres

8

Estoy usando SQLEXPRESS como entorno de prueba.

Tengo una conexión de base de datos en ArcCatalog a una base de datos SQL. Algunas tablas en la base de datos SQL tienen nombres de campo de más de 31 caracteres y estas tablas no se abrirán en ArcCatalog.

¿Se pueden dar alias a los nombres de campo SQL de más de 31 caracteres usando el estudio de administración del servidor y luego volver a conectarse a ArcCatalog o hacer que los nombres de campo en la base de datos SQL simplemente necesiten acortarse (lo cual será difícil ya que es propiedad de un tercero) )?

usuario22816
fuente

Respuestas:

4

El límite de 31 caracteres es un artefacto de soporte multi-RDBMS en ArcSDE (Oracle limita los nombres de tablas y columnas a 30 caracteres).

Estos son algunos de los límites relevantes del búfer de transferencia del archivo de inclusión 10.2.0:

#define SE_MAX_COLUMN_LEN          32  /* MAXIMUM COLUMN NAME LENGTH */
#define SE_MAX_TABLE_LEN           160 /* MAXIMUM TABLE NAME LENGTH */
#define SE_MAX_SCHEMA_TABLE_LEN    30  /* MAXIMUN TABLE 'ONLY' NAME LENGTH */
#define SE_MAX_ALIAS_LEN           32  /* MAXIMUM TABLE ALIAS LENGTH */
#define SE_MAX_ENTITY_LEN          256 /* MAXIMUM ENTITY TYPE LENGTH */
#define SE_MAX_HINT_LEN            1024/* MAXIMUM DBMS HINT LENGTH */
#define SE_MAX_SCHEMA_LEN          32  /* MAXIMUN SCHEMA NAME LENGTH */
#define SE_MAX_OWNER_LEN           32  /* MAXIMUM TABLE OWNER NAME LENGTH */
#define SE_MAX_INDEX_LEN           160 /* MAXIMUM INDEX NAME LENGTH */
#define SE_MAX_GROUP_LEN           128 /* MAXIMUM GROUP NAME LENGTH */

Estos son tamaños de búfer, que incluyen un terminador, por lo que los límites de caracteres reales son uno menos.

Me temo que necesitas cambiar tus mesas.

Vince
fuente
2

Su opción más fácil sería crear una Vista de la tabla y acceder a ella a través de ArcCatalog. Si no está familiarizado con ellos, una Vista es una representación de tablas que se define con una instrucción SQL. En su declaración SQL puede cambiar el nombre de los campos de la siguiente manera:

SELECT ReallyReallyReallyLongFieldName AS FieldOne FROM Table1

El uso de Vistas tiene muchas otras ventajas, incluida una mejor seguridad, ya que no está dando a las personas acceso directo a las tablas subyacentes.

Otra cosa que quizás desee reconsiderar es revisar el diseño de su base de datos. En la mayoría de los casos, probablemente no debería usar nombres de campo que sean tan largos.

dblanchett
fuente