ST_Geometry配置
原理:oracle调用用c语言编写的外部动态链接的库,在Windows上dynamic link library(.dll),在UNIX或Linux上是Shared Library(.so),利用这些安装好的类型和函数,您就可以使用 SQL 创建空间表;读取及分析空间数据;插入、更新及删除简单几何数据。
1、ST_Geometry配置
ST_Geometry配置步骤:
1:在arcgis server安装目录的bin目录下找到:st_shapelib.dll,(linux版本为libst_shapelib.so)拷贝到Oracle的安装目录下,如”D:\Oracle\product\11.2.0\dbhome_1\BIN”下,此外还需要设置对这个文件的读写权限操作及文件归属者。
2:在sde用户下运行如下两条语句:
1):create or replace library ST_SHAPELIB as 'D:\Oracle\product\11.2.0\dbhome_1\BIN\st_shapelib.dll';
2):alter package sde.st_geometry_shapelib_pkg compile reuse settings;
3:修改监听配置文件listener.ora中的(ENVS="EXTPROC_DLLS=D:\Oracle\product\11.2.0\dbhome_1\BIN\st_shapelib.dll")一行,设置为“EXTPROC_DLLS=ANY”;(注意备份)
4:保存listener.ora文件,重新启动监听程序。
----------------------------------------------------------------------------------------------------------------
测试ST_Geometry是否配置成功:
1:登入sde用户,执行如下语句
select * from user_libraries where library_name = 'ST_SHAPELIB';
查看是否有"D:\Oracle\product\11.2.0\dbhome_1\BIN\st_shapelib.dll"的一行数据,即有SDE相关的DLL引用;
2:执行st_geometry测试语句
SELECT sde.st_geometry('point (110.06544906 34.52209921)', 4326) FROM DUAL ;
2、已有sde用户,创建第二个空间库
--创建普通用户并赋权
create user gridsxsde identified by gridsxsde;
grant connect,resource,dba to gridsxsde;
--登录sde用户,查看类库位置
select * from user_libraries where library_name = 'ST_SHAPELIB';
--引入类库,并使之生效
CREATE or REPLACE LIBRARY ST_SHAPELIB AS '/data/oracle/product/11.2.0/db_1/hs/admin/arcsdelib/libst_shapelib.so';
ALTER PACKAGE sde.st_geometry_shapelib_pkg COMPILE REUSE SETTINGS;
--测试st_geometry
SELECT sde.st_geometry('point (110.06544906 34.52209921)', 4326) FROM DUAL ;