新的ArcGIS 10版本的软件出来了,安装了ArcSDE,由于暂时没有拿到Desktop的授权文件,在网上找了个破解,但是
导入shape到sde的时候一直会提示错误,ERROR 000732 connection to host.sde does not exist or is not supported
不知道是不是授权的问题,那个免费的60天的试用授权有空再折腾,sde本身提供了一些管理工具,就查了查shp2sde的用法
shp2sde -o create -l FT1_2,shape -f FT1_2.shp -i sde:myhost -u sdelayer -p mypwd
这个命令直接就可以把名称为FT1_2.shp 的文件导入到数据库中,不过,这个只能导入shape图元,也就是只能导入空间信息,
但每个图元都有一些属性信息的,比如名称,编号等,不知道属性信息怎么导入进去,貌似sde没有工具搞这个?ArcCatalog又不能用来导入数据,真是莫名其妙的问题。
========================20101209更新=============================
申请了60天的试用授权,发现导入数据到SDE的时候ERROR000732问题还是依然存在
那看来不是授权的问题了,在网上发现有人说先导入到personal geodatabase然后再从personal geodatabase中
直接拖放到sde中,试了,可行,但是图层中文的时候,或者图层多的时候导入personal geodatabase也出问题,
换成File Geodatabase就没问题了。但是有些图层转到sde之后,在ArcMap中打开的时候会出现错误,
The specified coordinate exceeds the valid coordinate range ,但图层在shp或者file geodatabase中的时候打开没有
任何问题,
查了一下,esri官方有解决方法:http://support.esrichina-bj.cn/2007/1129/96.html
原文如下:
错误信息:
用ArcMap加载sde里的数据(数据空间参考是unkown),平移出当前视图窗口的时候报错:One or more layers failed to draw: The specified coordinate exceeds the valid coordinate range
原因:
domain
设置的问题,数据在导入
sde
的时候默认是按照空间参考的
domain来设置的,由于原始的shp文件空间参考是unkown,在导入的时候就按照数据的extent来
设
domain,
因此在
ArcMap
里稍一移动就会超出
domain
的范围而报错,而
shp
文件没有
domain
的限制故不会报错。
解决方法:
在将shp文件import进sde的时候,点那个对话框下面的Environment settings,然后在Geodatabase settings栏里设置output xy domain,可以打开该shp文件在它extent的基础上加大一点,最好相关数据的domain设置一致;或者在sde中新建一个Featureclass(默认domain很大),再将数据load进来。
这个是能解决问题,但是太繁琐了,纠结
========================20110107更新=============================
最近使用另一台机器,安装了Oracle 11.2.0.1.0以及ArcSDE 10,导入图层到sde没有问题了,
于是又查了查资料,试了试shp2sde导入shp图层,在搜索中发现,可以导入图层的属性数据,只需要设置一个-a all的参数,
之前没有认真看参考,疏忽了啊疏忽了,另外发现可能使用shape字段做索引不太好,应该指定为FID才对
最新的命令行示例语句:
shp2sde -o create -l 表名,索引名 -f 文件路径 -a all -i sde服务名 -s 服务器名 -D 数据库服务名 -u 用户名 -p 密码
如下:
shp2sde -o create -l FTD_1,FID -f F:/FTD_1.shp -a all -i esri_sde -s sdeServer20 -D sdedb -u sde -p 123
如此这般,就可以导入整个shp到sde中了,当然,shp中的列名称还是要注意的,可参考我之前的文章:
参考页面: