Skip to content

在oracle中创建SDE空间库

配置ORACLE 32位客户端

ArcMap是32位程序;所以连接oracle时,本机必须安装oracle 32位客户端,简便起见,直接官网下载oracle instant client,进行配置便可。

下载解压到文件夹如C:\instantclient_12_1,然后在Path变量中新增该文件夹路径。

创建SDE空间库

在ArcGIS中选择Create Enterprise Geodatabase工具:

输入相关信息后开始创建:

绿色部分提示如下:

The ST_Geometry shape library path may be invalid, or the EXTPROC is not configured correctly in the Oracle instance. [ (Unable to determine current version of ST_SHAPELIB. Please check the ST_Geometry shape library path on the Oracle server, which is set to "c:\progra~2\arcgis\desktop10.3\DatabaseSupport\Oracle\Windows64\st_shapelib.dll". Refer to the ArcGIS help topics for more details.
)]

意思是ST_Geometry shape library路径可能不正确。

如果创建出错,尝试将instance 项设置成 localhost:1521/orcl

配置ST_SHAPELIB路径

登录sde用户,在sqlplus 或者sql developer中里执行以下语句查看

sql
select * from dba_libraries where library_name='ST_SHAPELIB';

看到默认路径和实际路径不一致,执行以下语句,将ST_SHAPELIB变量修改为正确位置:

sql
create or replace library ST_SHAPELIB  as 'C:\Program Files (x86)\ArcGIS\Desktop10.3\DatabaseSupport\Oracle\Windows64\st_shapelib.dll';

配置ORCLE EXTPROC代理

1、打开ORACLE_HOME\product\12.1.0\dbhome_1\NETWORK\ADMIN目录下的 listener.ora 文件,原配置文件为:

(ENVS = "EXTPROC_DLLS=ONLY:c:\oracle\product\12.1.0\dbhome_1\bin\oraclr12.dll")

修改为:

(ENVS = "EXTPROC_DLLS=ANY")

2、打开ORACLE_HOME\product\11.2.0\dbhome_1\hs\admin 目录下的 extproc.ora文件,

将最后一行的SET EXTPROC_DLLS= 修改为 SET EXTPROC_DLLS=ANY

3、重启 OracleOraDb11g_home1TNSListener服务和 OracleServiceORCL服务。

删除SDE空间库

sql
-- 用户名和表空间均sde
drop user sde cascade
drop tablespace sde including contents and datafiles;

SDE使用

在catalog中,Database Connections 下点击Add Database Connection 实例名填写 localhost:1521/orcl

SDE版本控制及原理

数据集(要素类、要素数据集或表)注册为版本后,数据库中将会创建两个增量表:用于插入和更新的 A(添加)表以及用于删除的 D(删除)表。每次更新或删除数据集中的记录时,都会向这两个表或其中一个表添加行。

如:我在数据库中新建了一个Line要素类,然后将其注册为版本后,数据库中出现了如下两个表:a8,D8,8代表该要素类在[table_registry]表中的数据集的ID。

参考