Não é possível abrir o banco de dados SQL do ArcCatalog Database Connection Tabelas com nomes de campos com mais de 31 caracteres

8

Estou usando o SQLEXPRESS como um ambiente de teste.

Eu tenho uma conexão de banco de dados no ArcCatalog com um banco de dados SQL. Algumas tabelas no banco de dados SQL possuem nomes de campos com mais de 31 caracteres e essas tabelas não serão abertas no ArcCatalog.

Os nomes de campos SQL com mais de 31 caracteres podem receber apelidos usando o Server Management studio e, em seguida, reconectados ao ArcCatalog ou os nomes de campos no banco de dados SQL precisam simplesmente ser reduzidos (o que será difícil, pois pertence a terceiros) )?

user22816
fonte

Respostas:

4

O limite de 31 caracteres é um artefato de suporte multi-RDBMS no ArcSDE (o Oracle limita os nomes de tabelas e colunas a 30 caracteres).

Estes são alguns dos limites relevantes do buffer de transferência do arquivo de inclusão 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 */

Estes são tamanhos de buffer, que incluem um terminador, portanto, os limites reais de caracteres são um a menos.

Receio que você precise mudar de mesa.

Vince
fonte
2

Sua opção mais fácil seria criar uma Visualização da tabela e acessá-la através do ArcCatalog. Se você não estiver familiarizado com eles, um View é uma representação de tabelas definidas com uma instrução SQL. Na sua instrução SQL, você pode alterar o nome dos campos da seguinte maneira:

SELECT ReallyReallyReallyLongFieldName AS FieldOne FROM Table1

Existem muitas outras vantagens em usar o Views, incluindo maior segurança, pois você não está dando às pessoas acesso direto às tabelas subjacentes.

Outra coisa que você pode querer reconsiderar é revisar o design do seu banco de dados. Na maioria dos casos, você provavelmente não deve usar nomes de campo tão longos.

dblanchett
fonte