ArcCatalog Database Connection SQL-Datenbanktabellen mit Feldnamen mit mehr als 31 Zeichen können nicht geöffnet werden

8

Ich verwende SQLEXPRESS als Testumgebung.

Ich habe eine Datenbankverbindung in ArcCatalog zu einer SQL-Datenbank. Einige Tabellen in der SQL-Datenbank haben Feldnamen mit mehr als 31 Zeichen. Diese Tabellen werden in ArcCatalog nicht geöffnet.

Können die SQL-Feldnamen mit mehr als 31 Zeichen mithilfe von Server Management Studio Aliase erhalten und dann erneut mit ArcCatalog verbunden werden, oder müssen die Feldnamen in der SQL-Datenbank einfach gekürzt werden (was schwierig ist, da sie einem Drittanbieter gehören) )?

user22816
quelle

Antworten:

4

Die Beschränkung auf 31 Zeichen ist ein Artefakt der Multi-RDBMS-Unterstützung in ArcSDE (Oracle beschränkt Tabellen- und Spaltennamen auf 30 Zeichen).

Dies sind einige der relevanten Übertragungspuffergrenzen aus der 10.2.0-Include-Datei:

#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 */

Dies sind Puffergrößen, die einen Terminator enthalten, sodass die tatsächlichen Zeichenbeschränkungen eins weniger sind.

Ich fürchte, Sie müssen Ihre Tische wechseln.

Vince
quelle
2

Am einfachsten ist es, eine Ansicht der Tabelle zu erstellen und über ArcCatalog darauf zuzugreifen. Wenn Sie mit ihnen nicht vertraut sind, ist eine Ansicht eine Darstellung von Tabellen, die mit einer SQL-Anweisung definiert wird. In Ihrer SQL-Anweisung können Sie den Namen von Feldern wie folgt ändern:

SELECT ReallyReallyReallyLongFieldName AS FieldOne FROM Table1

Die Verwendung von Ansichten bietet viele weitere Vorteile, einschließlich einer besseren Sicherheit, da Sie den Benutzern keinen direkten Zugriff auf die zugrunde liegenden Tabellen gewähren.

Eine andere Sache, die Sie vielleicht noch einmal überdenken möchten, ist die Überprüfung des Designs Ihrer Datenbank. In den meisten Fällen sollten Sie wahrscheinlich keine so langen Feldnamen verwenden.

dblanchett
quelle