ArcGIS SDE for Oracle 客户端直连错误解决

arcgis10.2发现直连数据库问题:通过arcgis desktop能连,但是arcengine不能连,始终报

“Underlying DBMS error[ORA-12154:”错误。

一、ArcEngine直连失败解决方法

ArcGIS SDE for Oracle 客户端安装配置,oracle中文乱码解决

服务器端环境:ArcGIS10.2,Oracle11g2服务器端,已安装,然后通过直连的方式,链接到SDE

客户端:
   客户端不用安装oracle11g2客户端,只需要安装instantclient,然后配置环境变量参数,Oracle官网提供了instantclient,下载instantclient-basic包,将包解压存放到本地,测试位置为:D:STUDYinstantclient_11_2;。

1、直接在这个目录下新建sqlnet.ora和tnsnames.ora两个文件
sqlnet.ora文件内容
---------------------
SQLNET.AUTHENTICATION_SERVICES= (NTS)  //此处也可为=None,=NTS容易出现无法连接orcle现象。
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)


tnsnames.ora文件内容 orcl = (DESCRIPTION= (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.146.143 )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 注:斜体部分需要按需配置,如果端口是自定义的也需要相应变更。

  

二、ArcGIS10.1及以上 直连SDE参数配置方法

   Server:服务器名或IP(可以不填)
   INSTANCE: sde:oraclexx:数据库监听名
   Database: 要连接的数据库名(可以不填)
   username: 用户名(最好用SDE用户)
   password: 密码

IPropertySet pPropset = new PropertySetClass(); 
pPropset .SetProperty("Server",“192.168.0.1”); 
pPropset .SetProperty("INSTANCE","sde:oracle11g:orcl"); 
pPropset .SetProperty("USER","sde"); 
pPropset .SetProperty("PASSWORD","sde"); 
pPropset .SetProperty ("DATABASE", "sde"); 
pPropset .SetProperty("VERSION","SDE.DEFAULT"); 
IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass(); 
IFeatureWorkspace Workspace = (IFeatureWorkspace)Fact.Open(pPropset ,0);

 参考:

ArcSDE10.1之后直连数据库

ArcEngine 访问 直连方式Oracle11g SDE10.1

 

三、不配置 Tns Name 使用 ArcGIS Desktop 直连 SDE 的方法

按照一、二方法需要配置sqlnet.ora和tnsnames.ora两个文件;如果不配置也可以,服务写成这个样式即可“sde:oracle11g:192.168.15.192/orcl”,arcengine连接sde同理。

3.1 不配置 Tns Name 使用 ArcGIS Desktop 直连 SDE 的方法

以下是连接参数截图:

参数说明:

服务器:服务端IP或机器名

服务:“sde:oracle11g:”是固定的,最后的“PS2VM1”是oracle的网络服务名,就是oracle net manager左边的树的节点名称

PS:不用网络服务名也可以,例如可以这样:“sde:oracle11g:192.168.15.192/orcl”,192.168.15.192代表IP或计算机名,orcl是oracle数据库名(SID),这种写法也可用在plsql登录时的database一项

数据库:可以不填

用户名和密码:sde的用户和密码

 

3.2 不配置 Tns Name 使用 ArcEngine直连 SDE 的方法

写成这个样式即可“sde:oracle11g:192.168.15.192/orcl”

(上文中配置tnsname的写法是写成sde:oracle11g:orcl(此处的orcl是tnsname的监听名称orcl))

IPropertySet propertySet = new PropertySetClass();
propertySet.SetProperty("instance", "sde:oracle11g:192.168.1.1/orcl");
propertySet.SetProperty("user", "sde"
propertySet.SetProperty("password", "sde"
propertySet.SetProperty("version", "sde.DEFAULT"

IWorkspaceFactory factory = new SdeWorkspaceFactoryClass();
return factory.Open(propertySet, 0);

 参考:

ArcGIS Desktop 10.0 直连 ArcSDE 10.2

不配置Tns Name使用ArcGIS Desktop直连SDE的方法.pdf_微盘下载

  

 

原文地址:https://www.cnblogs.com/GISRSMAN/p/6420966.html