When does the Oracle library for st_shapelib.dll need to be changed?

Question

When does the Oracle library for st_shapelib.dll need to be changed?

Answer

The library is the path for Oracle to locate the external .dll file used by st_geometry functions and operators with Oracle's external process. 

To identify the st_shapelib library's current location in Oracle, execute the following SQL statement, as the SDE user, in SQL*Plus:

SQL> SELECT library_name, file_spec FROM user_libraries;

LIBRARY_NAME FILE_SPEC
------------ --------------------------------------------
ST_SHAPELIB  D:\ESRI\ArcSDE\ora10gexe\bin\st_shapelib.dll

The value for file_spec must match the st_shapelib.dll's physical file location on the server. If it does not match, st_geometry operators and functions fail to execute. 

If for any reason the path to the library must be changed, for example, the administrator moves the file location for SDEHOME or an Oracle export file is being imported from another instance where the path to the st_shapelib.dll is different, then the library
specification must be updated to match the correct location of the st_shapelib.dll. 

A possible indicator as to when the library location may need to be updated is when the following error message is encountered when executing a st_geometry function or operator (the error is an indicator that the value for the specified library location may
be invalid). 

SQL> SELECT sde.st_astext(shape) FROM sewers WHERE objectid = 10;
ERROR:
ORA-06520: PL/SQL: Error loading external library
ORA-06522: Unable to load DLL
ORA-06512: at "SDE.ST_GEOMETRY_SHAPELIB_PKG", line 70
ORA-06512: at "SDE.ST_GEOMETRY_OPERATORS", line 68

To fix the problem, update the library path in SQL*Plus, as the SDE user, by setting the file directory to the location where the st_shapelib.dll resides.

SQL> CREATE OR REPLACE LIBRARY st_shapelib
  2  AS 'C:\Program Files\ESRI\ArcSDE\ora11gexe\bin\st_shapelib.dll';
  3  /

Library created.

Creating the library causes dependent objects to become invalid. Oracle best practices recommend all objects should be compiled and valid. To ensure all objects are valid in the SDE schema, execute the following command as the SDE user: 

EXECUTE sys.utl_recomp.recomp_serial('SDE');
PL/SQL procedure successfully completed.

Verify all objects are valid. 

SQL> SELECT object_name FROM user_objects WHERE status = 'INVALID';

no rows selected
时间: 2024-08-16 20:59:14

When does the Oracle library for st_shapelib.dll need to be changed?的相关文章

微软-oracle.manageddataaccess 这个官方dll的效率等问题

问题描述 oracle.manageddataaccess 这个官方dll的效率等问题 想问一下: 它的效率怎么样?网上有文说其效率仅仅和微软的oracleclient相当: 它是否还有语言设定上的麻烦? 这个dll出正式版了么?目前就找到beta的描述: 这个dll支持10g以及以上的数据库操作么?

Navicat for Oracle Cannot load OCI DLL

参考资料 Navicat for Oracle Cannot create oci environment http://blog.sina.com.cn/s/blog_695ef5280100qzth.html 一 环境: XP+Oracle10+Navicat 8 or Oracle 二 配置连接名出错:如图  三 解决方式: 菜单中: 工具--->选项,如图 选择电脑中安装Oracle的相关目录!

Oracle中library cache和dictionary cache概述

library cache最主要的功能就是存放用户提交的SQL语句.SQL语句相关的解析树(解析树也就是对SQL语句中所涉及的所有对象的展现 ). 执行计划.用户提交的PL/SQL程序块(包括匿名程序块.存储过程.包.函数等)以及它们转换后能够被Oracle执行的代码等.为了 对这些 内存结构进行管理,library cache中还存放了很多控制结构,包括lock.pin.dependency table等. library cache也存放了很多的数据库对象的信息,包括表.索引等.有关这些数据

Oracle空间查询 ORA-28595

可使用数据库管理系统 (DBMS) 的结构化查询语言 (SQL).数据类型和表格式来处理地理数据库或安装了 ST_Geometry 类型的数据库中所存储的信息. 例如,在ArcMap中我们使用"相交"工具进行空间操作:ArcObject接口里用ITopologicalOperator.Intersect来实现.现在,我们可以脱离接口,实现数据的空间操作,从性能和架构的角度来说,这值得深入研究.在Sql Server中用STIntersects方法,在Oracle中使用SDO_FILTE

配置Oracle访问SQL地理数据库

Oracle访问空间数据 ArcSDE是ArcGIS的空间数据引擎,它是在关系数据库管理系统(RDBMS)中存储和管理多用户空间数据库的通路.以前连接方式有两种,服务连接与直接连接(简称"直连"),两种在不同ArcGIS版本中用软件与代码连接方式博客中也总结了一些:但现在,没有了ArcSDE服务器了,即没有了服务连接,只有直连. 在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有 (1)二进制Long Raw (2)ESRI的ST_Geometry (3)基于

Oralce 调用Delphi写DLL去访问C# WebService的问题

web|访问|问题 我想从Oracle的存储过程通过一个外部dll(Delphi编写)去访问C#写的WebService时,出现了"尚未调用 CoInitialize"不知道是怎么回事,望各位指点一二.1.我在Oracle里写了一个函数AddNumber如下:CREATE OR REPLACE FUNCTION "MY"."ADD" (a in BINARY_INTEGER,b in BINARY_INTEGER) RETURN BINARY_I

win864位使用plsqldeveloper连接oracle数据库的问题

  问题:win8的64位系统上使用plsql developer连接本地oracle数据库时会发生莫名其妙的问题,错误提示框甚至可能为空. 原因:据网上所说,原因估计是在64位系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer供我们使用,所以此时不能直接连接,需要安装oracle的客户端. 解决: 1.下载instantclient_11_2(数据库版本为10g.11g都能连接),地址http://download.csdn.net/detail/zxn

OCILIB v3.9.0发布 跨平台的Oracle驱动程序

OC++ILIB是一个跨平台的Oracle驱动程序,可提供非常快速和可靠地访问Oracle数据库.它提供了一个丰富,功能齐全,并易于使用的API .OCILIB 支持运行的所有Oracle平台. 主要的功能包括: &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;    *提供了丰富的,功能齐全且易于使用的API      *运行在所有Oracle平台     *是用纯的ISO C代码与本地的ISO ç Unicod

PHP Startup: Unable to load dynamic library

 连接代码 <?php  echo 'a'; $cn = mysql_connect("localhost",'你的mysql用户名','你的mysql用户密码') or die(mysql_error()); if( $cn ) {   echo phpinfo(); } else {  echo 'mysql connect fail'; } ?> 因为服务器使用的是安全php.ini所在没有错误显示,于时相看了apache安装目录的logs的errors.log日志文