fme中oracle转shp,关于Fme、arcsde、oracle三者存储解析

使用arccatalog向数据库添加空间数据图层则不需要对该图层进行注册

下列两种情况需要注册才能看到空间视图

1 : 直接使用 SQL 语句创建要素类

2 :使用 fme 创建要素类

SQL 语句创建要素类及注册方法如下:

使用 SQL 语句创建包含 ST_Geometry 列的表,注意:要使 SDE 能够认识你创建的要素类,新建的表中有且只能有一个 ST_Geometry 列,并且最好包含唯一标识的列。 执行下面的 sql 语句 CREATE TABLE sensitive_areas (area_id integer, name varchar(128),

area_size float, type varchar(10), zone sde.st_geometry);注意 st_geometry 前面应添加 sde schema 名,否则会报错。 使用 sdelayer 命令,将创建好的表注册到 SDE 中 注册的时候一定要保证下面几点才能成功: 1 必须是表的所有者才能注册。 2 表中只能有一个 ST_Geometry 列。 3 没有其他用户自定义类型的列。

4

必须是简单的集合类型

(points, lines, or polygons)

5Geometry

必须是有效的,否则读取的时候会产生不可预期的错误。

sdelayer

命令参数如下:

sdelayer -o register -l -e [Spatial_Index]

[{-R | [Spatial_Ref_Opts]}] [-P {BASIC | HIGH}]

{[-C NONE] | [-C [,{SDE|USER}[,]]]}

[-E {empty | xmin,ymin,xmax,ymax}] [-t ]

[-S ] [-q]

[-k ] [-i ] [-s

[-u ] [-p ] [-D ]

在命令行中执行下列命令

sdelayer -o register -l sensitive_areas,zone -e a -C area_id,SDE -u data -p sa -t ST_GEOMETRY

-o

参数为

register -l

参数为

表名

/ST_Geometry

-e

几何类型

-C

用户唯一

id/SDE

其中

SDE

表示由

sde

维护唯一

id

,使用

USER

选项,则有用户维护唯一

ID -u

注册地用户名

-p

用户密码

-t

数据存储类型

catalog

中查看,可以看到

sensitive_areas

已经被注册到

sde

中,并且图标显示为

polygon

类型。

Fme 创建要素类及注册方法

通过 fme 向数据库中添加图层,添加成功后

使用 sdelayer 命令,将创建好的表注册到 SDE 中 注册的时候一定要保证下面几点才能成功: 1 必须是表的所有者才能注册。 2 表中只能有一个 ST_Geometry 列。 3 没有其他用户自定义类型的列。 4 必须是简单的集合类型 (points, lines, or polygons) 。 5Geometry必须是有效的,否则读取的时候会产生不可预期的错误。

sdelayer 命令参数如下:

sdelayer -o register -l -e [Spatial_Index]

[{-R | [Spatial_Ref_Opts]}] [-P {BASIC | HIGH}]

{[-C NONE] | [-C [,{SDE|USER}[,]]]}

[-E {empty | xmin,ymin,xmax,ymax}] [-t ]

[-S ] [-q]

[-k ] [-i ] [-s

[-u ] [-p ] [-D ]

在命令行中执行下列命令

sdelayer -o register -l GGG,shap -e p -P BASIC -C NO,user -u cawy_cas -p 1@pguayas -i sde:oracle10g -t ST_GEOMETRY -R 2 -E -180,-90.144,180,90

-o 参数为 register -l 参数为 表名 /ST_Geometry 列 -e几何类型 -C用户唯一 id/SDE其中 SDE 表示由 sde 维护唯一 id ,使用 USER 选项,则有用户维护唯一 ID -u注册地用户名 -p用户密码 -t数据存储类型 在 catalog 中查看,可以看到 GGG 已经被注册到 sde 中,图标显示为 polygon 类型,但是看不到视图。原因不详

后来利用fme将数据导入到arcsde格式中。经测试完全可行

处理方法如下:

创建 arcsde 服务一般不需要创建,如需创建可按下列方法创建

创建方法分为两种:一种是在数据库服务器上安装,一种是分布式安装

1分布式安装

0818b9ca8b590ca3270a3433284dd417.png

分布式安装通俗理解就是数据库与 ArcSDE 不在一台机器上,一般使用分布式的有两种情况:数据库端为 64Bit ,但是用户并没有 64Bit 的 ArcSDE ,所以再找一台机器安装 32BitArcSDE ,但是分布式安装一个必须的要求是, ArcSDE 端机器必须安装客户端,再或者是数据库端是非 Windows 操作系统,可能用户不习惯, ArcSDE 端在 Windows 操作系统上。

在安装 ArcSDE 之前,首先保证该机器安装数据库客户端,而且保证 sqlplus sys/oracle@orcl as sysdba (用户根据自己密码实例名而定,以下不再解释)可以连通。

1 :利用安装向导勾选 Custom ,勾掉创建 ArcSDE 服务项

2 :注册完毕后,修改 sdehome/etc/dbinit.sde set LOCAL=orcl( orcl 是实例名)

3 : sdehome/etc/Services.sde 添加 esri_sde 5151/tcp

4 : c:/windows/system32/drivers/etc/services添加 esri_sde 5151/tcp

5 :利用 ArcSDE 命令创建服务(必须使用命令创建)

sdeservice -o create -p sde -d "ORACLE10G,r5th" -n -i esri_sde -H "C:\Program Files\ArcGIS\ArcSDE\ora10gexe"

注: -d "ORACLE10G,SID" 中的 SID修改成的 ORACLE TNSNAME 。

-H 参数后的目录,根据实际安装目录而定

然后启动 sde 服务 ok

2 :一台机器多个服务

0818b9ca8b590ca3270a3433284dd417.png

一台机器多个服务的应用多在使用 Oracle 数据库创建了多个实例(也可以理解为每个实例对应一个库),那么就需要创建多个 ArcSDE 服务针对每一个库的操作。其实可以理解为每一个库都需要创建 SDE 的表、 SDE 的用户。

所以多个服务的安装步骤为:

假设有两个库(实例名: orcl 和 orcl2 )

1 :参考基本向导安装,为库 orcl 创建相关的服务

2:复制一份 SDEHOME,在原文件夹直接粘贴,可以起名为 ora11gexe2

3:可以利用 Oracle命令连接 sqlplus sys/oracle@orcl2 as sysdba

创建 SDE表空间、用户、利用 sdesetup– o install创建 Schma

也可以利用向导创建,但前提是网络服务名要写清楚( orcl2 )

4 :修改 newsdehome/etc/dbinit.sde set local=orcl2

修改 newsdehome/etc/services.sde esri_sde2 5152/tcp

C:/windows/system32/drivers/etc/services 文件添加 esri_sde2 5152/tcp

注意:多个服务需要注意的是不能存在同样的端口和 ArcSDE 实例名

然后创建新 sde 服务

sdeservice -o create -p sde -d "ORACLE10G,nsamdon" -n -i esri_sdensa -H "C:\Program Files\ArcGIS\ArcSDE\ora10gexe"

最后启动服务

然后利用fme workbenc将其他格式数据导入sde格式中(转换参数如下)

0818b9ca8b590ca3270a3433284dd417.png  

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png  导入成功后,通过arccatalog连接数据库,可以看到刚才导入的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值