首页 > 代码库 > 关于oracle创建ArcGIS空间数据库

关于oracle创建ArcGIS空间数据库

创建基于Oracle的地理数据库有两种方式:

1、知道oracle管理员密码,直接用ArcGIS客户端的创建企业级地理数据库工具来创建

技术分享技术分享

2、不知道sys的密码,但是在oracle创建好了sde用户和sde表空间,并赋予了sde相应的权限,可以直接“启用企业级地理数据库”

注意:在创建地理数据库完成后,弹出如下错误:
ST_Geometry 形状库路径可能无效,或者未在 Oracle 实例中正确配置 EXTPROC。 [ (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没有正确配置到oracle中,在ArcGIS客户端的安装路径下,找到st_shapelib.dll的路径c:\progra~2\arcgis\desktop10.3\DatabaseSupport\Oracle\Windows64\st_shapelib.dll,打开oracle数据库安装目录找到lisener.ora文件打开,需要将 (PROGRAM = extproc)后一行中加入st_shapelib.dll的路径,修改后为:(ENVS= "EXTPROC_DLLS=ONLY:c:\progra~2\arcgis\desktop10.3\DatabaseSupport\Oracle\Windows64\st_shapelib.dll")。

配置完extproc后,还要在数据库中对与引用类库进行配置,先用sql语句查询当前用户是否存在相应类库引用定义

 

  1.  create or replace library ST_SHAPELIB    
  2. 2  as ‘c:\progra~2\arcgis\desktop10.3\DatabaseSupport\Oracle\Windows64\st_shapelib.dll‘;    
  3. 3  /   

然后,再用sql语句查询当前用户是否存在相应类库引用定义或查询整个系统中ST_SHAPELIB定义情况

 

select * from dba_libraries where library_name=‘ST_SHAPELIB‘;

技术分享

重启oracle实例服务,然后在客户端连接sde即可.

技术分享

可以看到,创建完地理数据库后,数据库连接右键上的启用地理数据库的项目消失了(题外话)


特别说明的是,用户模式下,只需要一次创建地理数据库即可,之后在oracle下创建相应的业务空间库的用户名和密码及表空间,在ArcGIS客户端直连

 

然后即可在该连接下新建要素数据集

关于oracle创建ArcGIS空间数据库