有关ArcSDE的文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1
在 Oracle 中注册 ST_Geometry 列
在 Oracle 中,于 ST_Geometry 列中创建空间索引将会注册列以使用特定空间参考。
有关使用 SQL 在 Oracle 中创建空间索引的示例,请参阅为包含 ST_Geometry 列的表创建空间索引。
1.2 使用 SQL 为包含 ST_Geometry 列的表创建空间索引
地理数据 » 管理地理数据库 » 使用 SQL » SQL 空间和栅格数据类型 » 将 ST_Geometry 与 SQL 搭配使用 创建空间索引时,需要提供以下信息: 索引名称 包含待定义索引的空间列的表的名称 待定义索引的空间列的名称 格网大小(仅 Oracle 或 DB2 等使用格网索引的数据库需要) 以下是在每种受支持的数据库中为 ST_Geometry 列创建索引的示例。
步骤: 1. 打开 SQL 编辑器并连接到数据库。
2. 对于 Oracle、 PostgreSQL、 DB2 以及 Informix, 使用 CREATE INDEX 语句创建空间索引。
对于 SQLite,使用 CreateSpatialIndex 函数。
Oracle CREATEINDEXsa_idx ONsensitive_areas(zone) INDEXTYPEISsde.st_spatial_index PARAMETERS('st_grids=1,3,0 st_srid=4326'); CREATEINDEXhs_idx ONhazardous_sites(location) INDEXTYPEISsde.st_spatial_index PARAMETERS('st_grids=1,0,0 st_srid=4326');
1.3 创建远程 Windows 服务器中的 ArcSDE 服务
在 Windows 服务器上安装 可使用 sdeservice 命令在远程服务器上创建 ArcSDE 服务。
sdeservice 命令在用于创建服务时使用以下语法: sdeservice -o create -p <ArcSDE_admin_password>
[-n] [-H <sde_directory>] [-i <service>] [-s <data_source>] -d {ORACLE,SID | SQLSERVER,SQLSERVERINSTANCE | DB2,DB2INSTANCE | INFORMIX | POSTGRESQL,PGINSTANCE} [-u <service_user>] [-P <service_user_password>]
创建服务时,sdeservice 命令需要包括 -d 选项和值。
但 Windows 服务无法依赖于远程服务器上 的服务。
因此,必须指定 -n 选项以取消这种依赖关系。
此命令只能在 Windows 服务器上使用并需要在 MS-DOS 命令提示符中执行。
步骤: 1. 将新服务的条目添加到 ArcSDE 和 Windows 服务文件。
2. 在 MS-DOS 命令提示符中输入带 create 操作并包括 -n 选项的 sdeservice 命令。
Sdeservice–o create –p sde–d ORACLE,gisdb–n –iesri_sde 3. 在 ArcSDE 服务器上的 dbinit.sde 文件中设置 LOCAL 环境变量以指向 Oracle Net 服务名称。
可在 %SDEHOME%\etc 中找到此文件。
创建服务后,可使用 sdemon 命令启动它。
注意:dbinit.sde 文件中设置如下:set LOCAL=192.168.2.211/GISDB(其中 GISDB 是远程服务 器的实例名,前面一定要加 ip 地址,不然计算机找不到 gisdb 是哪里的)。
1.4 查询 SRID 的 sql 语句
Select table_name,srid from sde.st_geometry_columns where
table_name=’ZDJBXX’; Ps:ZDJXX 为表名;
1.5 将空间表注册到 ArcSDE
使用 sdelayer 命令将空间表注册到 ArcSDE。
注册后,该表的一条记录将添加到 LAYERS 和 TABLE_REGISTRY 系统表中。
该表中每列的记录还将添加到 COLUMN_REGISTRY 系统表中, 空间列的一条记录将添加到 GEOMETRY_COLUMNS 系统表中。
这些示例中所示的选项表示以下内容: –o 选项表示正在执行的操作,在本例中为 register。
–l 选项用来指定要注册的表的名称 (outbreaks) 和几何列的名称 (location)。
–e 选项用于指示存储在该表中的几何类型。
在本例中,点存储在该表中,因此通过 –e 选项 指定 p。
几何数据类型 (ST_Geometry) 通过 –t 选项进行指定。
–C 选项用于指定要用作 ObjectID 的列的名称 (RID),以及指定由系统对列进行维护。
在本 例中,列尚不存在。
因此,ArcSDE 将向表中添加此列。
–E 选项用于指定图层的 x 坐标和 y 坐标的最小值及最大值。
ArcSDE 系统表中的空间参考 ID (SRID) 通过 –R 选项进行指定。
–i 选项用于指定连接语法。
在本例中,使用了地理数据库的直接连接。
–s 选项表示服务器或数据源。
–D 选项(不适用于 Oracle)用于指定数据库名称。
–u 和 –p 选项为表的所有者的用户名和密码。
步骤: 1. 使用 sdelayer 命令的 register 操作,将 outbreaks 表注册到 ArcSDE。
Oracle sdelayer -o register -l outbreaks,location -e p -t ST_GEOMETRY -C RID,SDE -E -498618.389,-243045.144,498618.389,243045.144 -R 0 -i sde:oracle11g -s server1 -u creator -p powerup
PostgreSQL sdelayer -o register -l outbreaks,location -e p -t ST_GEOMETRY -C RID,SDE -E -498618.389,-243045.144,498618.389,243045.144 -R 0 -i sde:postgresql:server1 -s server1 -D postdb -u creator -p powerup
DB2 sdelayer -o register -l outbreaks,location -e p -t ST_GEOMETRY -C RID,SDE -E -498618.389,-243045.144,498618.389,243045.144 -R 0 -i sde:db2 -s server1 -D db2db -u creator -p powerup
Informix sdelayer -o register -l outbreaks,location -e p -t ST_GEOMETRY -C RID,SDE -E -498618.389,-243045.144,498618.389,243045.144 -R 0 -i sde:informix -s server1 -D idsdb -u creator -p powerup
1.6 将表和图层注册到地理数据库
可使用 ArcGIS Desktop 或 ArcObjects 将表或图层注册到地理数据库。
使用 IClassSchemaEdit3 ArcObjects 方法中的 RegisterAsObjectClass 将表或图层注册到地 理数据库。
有关语法和用法的信息,请参阅 ArcObjects 库参考。
下面一组步骤介绍了如何在 ArcGIS Desktop 中注册到地理数据库。
在目录树中,右键单击要注册到地理数据库的表或图层,然后单击注册到地理数据库 (Geodatabase)。
步骤: 1. 启动 ArcMap 并打开 Catalog 窗口,或启动 ArcCatalog。
2. 连接到包含要注册的表的 ArcSDE 地理数据库。
此连接在 Catalog 目录树的“数据库连接”节点下进行。
请确保以表所有者的身份进 行连接。
3. 右键单击 patients 表。
4. 单击注册到地理数据库。
5. 将表注册到 ArcSDE 时已将 OID 字段指定为 ObjectID,因此选择该字段用作地理 数据库的 ObjectID 字段。
6. 单击确定。
7. 右键单击 outbreaks 图层。
8. 单击注册到地理数据库。
9. 单击确定。
1.7 Sde 命令说明
由于选项前面带有特定字母,因此可以用任意顺序传递选项。
选项区分大小写,因此请确保使用 正确的大小写。
根据操作的不同,一些选项是必需的,一些则不是,使用方括号 ([ ]) 进行指示。
sdeservice 命令 提供以下选项: 选 项 -D -h 或 -? -H -i -I 描述 数据库名称,Oracle 中不支持此选项 使用任一选项可查看命令的语法。
如果从 C shell 运行命令,则使用 -h 或 -\?。
ArcSDE 主目录 (SDEHOME);仅在未设置 SDEHOME 变量或使用多个服务时需要此选项 ArcSDE 服务名称或端口号;在未使用默认值 esri_sde 的情况下需要此选项 仅与 info 操作一起使用,该操作会查询有关配置、锁定、统计、用户、环境变量或用户 方案地理数据库 (Oracle) 的信息。
config:显示当前配置变量 locks:显示有关保持锁定状态的进程的信息 stats:显示每个 ArcSDE 客户端/服务器连接的进程统计;仅适用于 ArcSDE 服务,并 且仅在 SERVER_CONFIG 参数 PROCSTATS 设置为除 -1 之外的值时有效 users:列出到地理数据库的用户连接、连接类型和关联的进程标识符;每个连接 = 一 条记录 users_long:列出到地理数据库的用户连接、连接类型和关联的进程标识符;信息以每 个连接的属性列表的形式返回 vars:显示 ArcSDE 服务环境变量
-N -o -p
instances:返回 Oracle 数据库中的所有实例
不执行任何验证;调用后立即开始操作。
指定操作。
对于 start、pause、resume、shutdown 和 kill 操作,此选项用于指定地理数据库管理 员的密码。
对于 status 和 info 操作,可以是任意数据库用户的密码。
禁止所有标题和警告。
ArcSDE 服务器主机名(默认为 localhost) 与 kill 操作一起使用,以指定下列选项之一: all:强制删除地理数据库的所有连接 pid:仅删除通过选项传递的进程标识符所标识的连接
-q -s -t
-u
这是数据库用户名。
与 kill 操作一起使用时,-u 选项用于指定数据库中具有取消连接所需权限的数据库用 户。
由于地理数据库管理员可能没有所需的权限,所以此用户并不总是地理数据库管理员。
与 info 或 status 操作一起使用时,这是有地理数据库访问权限的任意用户的用户名。
。