ArcGIS Desktop 无法录入数据处理一例
分享
最近,搭建了一个DB2的测试环境,装完系统后,发现有一个美国带的样例数据无法导入,详细环境如下:
桌面:Desktop 10.3.1 DB2: V97 FP8 X64 For NT
从错误信息上得不到任何的提示,继续做测试 导入数据的时候出了空间字段,属性字段全部删除,可以导入进去,说明出问题出在这些属性字段上,但是仍然查不出原因。
继续测试,由于原数据存储在FileGDB中因此可以使用拷贝粘贴的功能进行数据录入,在粘贴中报如下错误:
报SQL0268错误,查询SQL0268具体信息如下:
这个错误就非常明确了,是因为创建表需要16k页的表空间,但是现有的数据库默认表空间的页大小为4k,不够。
为什么需要16k的表空间呢,继续查看源数据,发现数据的几个Text类型的字段设置的最大大小都是2048,一个是6个字段,大小为12k,由于DB2数据库记录不能跨页存储(oracle是可以的,因此在oracle数据库上不存在这个问题),因此需要一个16k页面的表空间才可以,这也是为什么不录入属性字段就能录入进去的原因。
知道原因解决就容易多了,可以有以下几种解决方案。
将SDE的关键字导出出来
编辑export .ext 将##DEFALUTS关键字的B_STORAGE 修改成
DEFAULTS
A_INDEX_ROWID “” A_INDEX_SHAPE “” A_INDEX_STATEID “” A_INDEX_USER “” A_STORAGE “” AUX_STORAGE “” B_INDEX_ROWID “” B_INDEX_SHAPE “” B_INDEX_TO_DATE “” B_INDEX_USER “” B_RUNSTATS “YES” B_STORAGE “” BLK_BLOB_OPTION “LOGGED NOT COMPACT” BLK_INDEX_COMPOSITE “” BLK_STORAGE “in sdetbs16k” 接着导入到SDE库中
重新拷贝粘贴即可。
文章来源:http://blog.csdn.net/liufeng1980423/article/details/56282820
桌面:Desktop 10.3.1 DB2: V97 FP8 X64 For NT
从错误信息上得不到任何的提示,继续做测试 导入数据的时候出了空间字段,属性字段全部删除,可以导入进去,说明出问题出在这些属性字段上,但是仍然查不出原因。
继续测试,由于原数据存储在FileGDB中因此可以使用拷贝粘贴的功能进行数据录入,在粘贴中报如下错误:
报SQL0268错误,查询SQL0268具体信息如下:
SQL0268N 当正在重新分发数据库分区组时,不能执行 "<操作>"。
说明:
下列其中一项适用,由 "<操作>" 指示:
* 正在重新分发数据库分区组,在完成当前操作之前,不能再次改变、删除或重
新分发该数据库分区组。
* 当正在重新分发表的数据库分区组时,不能删除该表的分区键。
* 不能创建新对象,因为 REDISTRIBUTE 正在删除此数据库分区组中所有旧的数
据库分区。
* 不能通过 ALTER TABLE 来添加新列,因为 REDISTRIBUTE 正在删除此数据库
分区组中所有旧的数据库分区。
无法处理该语句。
用户响应:
等到完成重新分发之后再次尝试该请求。
sqlcode:-268
sqlstate:55038
这个错误就非常明确了,是因为创建表需要16k页的表空间,但是现有的数据库默认表空间的页大小为4k,不够。
为什么需要16k的表空间呢,继续查看源数据,发现数据的几个Text类型的字段设置的最大大小都是2048,一个是6个字段,大小为12k,由于DB2数据库记录不能跨页存储(oracle是可以的,因此在oracle数据库上不存在这个问题),因此需要一个16k页面的表空间才可以,这也是为什么不录入属性字段就能录入进去的原因。
知道原因解决就容易多了,可以有以下几种解决方案。
- 导入的时候重新设置字段的最大大小
- 创建一个16k的表空间,并将数据导入其中,具体可以参考下面的流程 创建page为16k的表空间
C:\Program Files\IBM\SQLLIB\BIN>db2 CREATE BUFFERPOOL BUFBP16K IMMEDIATE SIZE 2
50 PAGESIZE 16 K
DB20000I SQL 命令成功完成。
C:\Program Files\IBM\SQLLIB\BIN>db2 CREATE REGULAR TABLESPACE SDETBS16K PAGESI
ZE 16 K MANAGED BY AUTOMATIC STORAGE EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 1
6 TRANSFERRATE 0.14 BUFFERPOOL BUFBP16K DROPPED TABLE RECOVERY ON
DB20000I SQL 命令成功完成。
将SDE的关键字导出出来
编辑export .ext 将##DEFALUTS关键字的B_STORAGE 修改成
DEFAULTS
A_INDEX_ROWID “” A_INDEX_SHAPE “” A_INDEX_STATEID “” A_INDEX_USER “” A_STORAGE “” AUX_STORAGE “” B_INDEX_ROWID “” B_INDEX_SHAPE “” B_INDEX_TO_DATE “” B_INDEX_USER “” B_RUNSTATS “YES” B_STORAGE “” BLK_BLOB_OPTION “LOGGED NOT COMPACT” BLK_INDEX_COMPOSITE “” BLK_STORAGE “in sdetbs16k” 接着导入到SDE库中
重新拷贝粘贴即可。
文章来源:http://blog.csdn.net/liufeng1980423/article/details/56282820