31文字を超えるフィールド名を持つArcCatalogデータベース接続SQLデータベーステーブルを開けません


8

SQLEXPRESSをテスト環境として使用しています。

ArcCatalogにSQLデータベースへのデータベース接続があります。SQLデータベースの一部のテーブルには31文字を超えるフィールド名があり、これらのテーブルはArcCatalogで開くことができません。

Server Management Studioを使用して31文字を超えるSQLフィールド名にエイリアスを指定し、ArcCatalogに再接続したり、SQLデータベースのフィールド名を短くするだけでかまいません(サードパーティが所有しているため、これは難しいでしょう) )?

回答:


4

31文字の制限は、ArcSDEでのマルチRDBMSサポートの成果物です(Oracleはテーブル名と列名を30文字に制限しています)。

これらは、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 */

これらはターミネーターを含むバッファーサイズであるため、実際の文字制限は1つ小さくなります。

テーブルを変更する必要があると思います。


2

最も簡単なオプションは、テーブルのビューを作成し、ArcCatalogを介してそれにアクセスすることです。それらに慣れていない場合、ビューはSQLステートメントで定義されたテーブルの表現です。SQLステートメントで、フィールドの名前を次のように変更できます。

SELECT ReallyReallyReallyLongFieldName AS FieldOne FROM Table1

基礎となるテーブルへの直接アクセスをユーザーに与えないため、セキュリティの向上など、ビューを使用することには他にも多くの利点があります。

再考した方がよいもう1つのことは、データベースの設計を確認することです。ほとんどの場合、おそらくそれほど長いフィールド名を使用するべきではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.