Tidak dapat membuka ArcCatalog Database Connection Tabel database SQL dengan nama bidang lebih dari 31 karakter

8

Saya menggunakan SQLEXPRESS sebagai lingkungan pengujian.

Saya memiliki koneksi database di ArcCatalog ke database SQL. Beberapa tabel dalam database SQL memiliki nama bidang lebih dari 31 karakter dan tabel ini tidak akan terbuka di ArcCatalog.

Bisakah nama SQL Field yang lebih besar dari 31 karakter diberikan alias menggunakan Server Management studio dan kemudian dihubungkan kembali ke ArcCatalog atau melakukan nama field dalam database SQL hanya perlu dipersingkat (yang akan sulit karena dimiliki oleh pihak ke-3) )?

pengguna22816
sumber

Jawaban:

4

Batas 31 karakter adalah artefak dari dukungan multi-RDBMS di ArcSDE (Oracle membatasi tabel dan nama kolom hingga 30 karakter).

Ini adalah beberapa batas buffer transfer yang relevan dari file include 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 */

Ini adalah ukuran buffer, yang termasuk terminator, jadi batas karakter sebenarnya adalah satu kurang.

Saya khawatir Anda perlu mengubah meja Anda.

Vince
sumber
2

Opsi termudah Anda adalah membuat Tampilan tabel dan mengaksesnya melalui ArcCatalog. Jika Anda tidak terbiasa dengan mereka, Lihat adalah representasi tabel yang didefinisikan dengan pernyataan SQL. Dalam pernyataan SQL Anda, Anda dapat mengubah nama bidang sebagai berikut:

SELECT ReallyReallyReallyLongFieldName AS FieldOne DARI Tabel1

Ada banyak keuntungan lain untuk menggunakan Tampilan termasuk keamanan yang lebih baik karena Anda tidak memberi orang akses langsung ke tabel yang mendasarinya.

Hal lain yang Anda mungkin ingin pertimbangkan adalah meninjau desain basis data Anda. Dalam kebanyakan kasus, Anda mungkin tidak boleh menggunakan nama bidang yang selama itu.

dblanchett
sumber