Map 3D / MapGuide 连接 Oracle 找不到oci.dll?
Map 3D 和 MapGuide使用FDO(Feature Data Object)技术可以无需转换的访问各种数据格式,包括SDF、SHP、raster数据,和 Sql Server Spatial,MySql,PostgreSQL和Oracle。
我在台式机(Win 7 32bit)上安装了Oracle 11g R1做数据库服务器,我的笔记本用的是Win 7 64, 所以我决定装一个x64的Oracle 客户端。我配置Oracle其实是想配置一个Map 3D 2012/ AIMS 2012中关于企业行业模型(Enterprise Industrial Model)的环境,看了一下系统需求, Win7的话需要Oracle 11g R2的客户端,于是按照要求在笔记本上安装了Oracle 11g R2 x64的客户端。
安装过程都蛮顺利,很快就安装完毕了。然后开始配置本地服务名,打开Net Manager(在安装过程中也可以通过 Net Configration Assistant向导来配置,不过我一般喜欢用Net Manager),点左上角的加号,取一个容易记的名字,比如Oracel_MyPC,
在下一步中选择TCP/IP协议:
在第3页中,主机名填写我安装了Oracle 服务器的机器名,端口就默认的1521。这里需要提醒一下,如果你需要像我一样从其他的计算机来访问Oracle服务,需要在安装Oracle服务器的机器上打开1521端口。如果你的oracle服务器和客户端都安装在本地,那就简单了,主机名填127.0.0.1就行了。
这里填写安装Oracle服务器时的服务名,一般是ORCL:
至此设置完毕,不放心可以测试一下,不过确保你用了正确的用户名,缺省的那个scott可能因为是锁定状态,测试不成功从而误导你以为是这个配置有错。不过只要你的防火墙端口打开,上面的几个参数没填错的话,一般没问题。
设置完毕,记得保存网络设置。
好了,现在就在MapGuide里试试看,打开Autodesk Infrastructure Studio 2012, 如果你用MapGuide 2011的话那就是MapGuide Studio 2011. new一个Data Connection,选择Autodek FDO Provider for Oracle:
输入上面定义的本地服务名和用户密码,我的Oracle 数据库已经事先通过Map 3D 的BulkCopy考了一些GIS数据进去了。
但是会提示下面的错误信息:
Unable to complete request to Site
---------------------------
An exception occurred in FDO component.
The runtime was not found (module 'OCI.dll'). Please verify your Oracle client component installation.
---------------------------
查找原因就在于没有正确设置PATH和Oracle_Home环境变量:
在系统环境变量中把Oracle 客户端的路径C:\Oracle\product\11.2.0\client_1\bin;加入到PATH变量中;同时设置Oracle_Home变量的值为C:\Oracle\product\11.2.0\client_1,注意后面不要带“\”. 重启计算机。
再从安装上面的方法从MapGuide Studio中连接oracle ,选择DataStore,version为LIVE,点击“Test Connection”按钮,应该显示已经正常连接。
剩下的就是创建图层Layer和一起的方法一致,不再重复了,不清楚的同学翻一前的老帖子或者看MapGuide Studio的帮助。
Map 3D中连接oracle的方法也类似,在TaskPane中点Data,选择Connect To Data,打开Data Connection窗口,选择Add Oracle Connection,连接名输入框中输入上面设置好的Oracle网络服务名,点login按钮登录,注意不能用sys等DBA用户登录。通过验证后可以选择Data Store和Version,连接即可。
成功连接后,你就可以看Oracle数据库中的图层,选中一些图层,点Add to map按钮即可在Map 3D中打开该图层。
自己试验一下吧。
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240825082459112-376424429.jpg)