您的位置:首页 > 数据库 > Oracle

linux Oracle sde 外部包安装 ora-28595 的解决

2015-08-04 00:00 639 查看
摘要: oracle 操作arcgis 空间表设置

用sql 在oracle 中操作空间表的时候报错入下:



以上提示说明是依赖的sde包引用无效,通过查询官网为oracle数据库配置了sde包,设置过程在此记录一下:

登陆sde用户执行
select * from user_libraries where library_name = 'ST_SHAPELIB';
结果如下:明显对应路径是中引入的 st_shapelib.dll 文件是不存在的



2.在linux上新建文件夹,从arcdesktop 的安装目录找到 ......\DatabaseSupport\Oracle\Linux64 拷贝 libst_shapelib.so 过去并赋予权限

mkdir sde_linux
mkdir oracle
chmod 777 libst_shapelib.so


3.更改外部库到指定so文件位置,登陆sde用户,执行

create or replace library st_shapelib as '/oracle/sde_linux/oracle/libst_shapelib.so';


以上的路径为你自己的libst_shapelib.so文件的所在路径

4.配置环境变量

lstener.ora 文件添加(根据自己情况修改ORACLE_HOME 和ENVS 路径)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = PLSExtProc)
(PROGRAM = extproc)
(ENVS="EXTPROC_DLLS=/oracle/sde_linux/oracle/libst_shapelib.so")
)
)


tnsnames.ora 添加以下内容

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(Key =  EXTPROC1521))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)


注意事项: 这两个文件的SID、SID_NAME 要相等 ,另外tnsnames.ora 中的Key 也要和listener.ora 中的Key 要相等。

5.重启监听和服务

su - oracle
lsnrctl stop
lsnrctl start
sqlplus /nolog
conn /as sysdba
shutdown immediate
startup


完成以上操作后就可以在oracle中用sql语句更新arcgis空间表了

执行:

SELECT registration_id FROM sde.table_registry WHERE table_name = 'TXT_TEST01' and owner = 'ARCGIS';

INSERT INTO TXT_TEST01 (OBJECTID,FIELD_0,SHAPE) VALUES(sde.version_user_ddl.next_row_id('ARCGIS', 121),  'TRANQUIL', sde.ST_GEOMETRY('point (119.001824881 25.436934541)',300000) );


添加成功!end

附上官网链接:http://resources.arcgis.com/en/help/main/10.2/#/Configuring_the_Oracle_listener_to_use_ST_Geometry_and_ST_Raster/006z0000001w000000/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ORA-28595 ARCSDE ORACLE