Qgis连接Oracle

CMake编译中选择编译Oracle一项以后,编译的qgis才会有连接Oracle数据库的功能。

编译qgis以后,可以通过添加矢量图层中选择Oracle数据库,或是添加Oracle空间图层,或是添加Oracle GeoRaster图层来连接Oracle数据库。

本人是通过本地客户端连接的Oracle数据库,因此在创建OGR数据库连接时,不需要添加主机,否则还是连接失败,当然,也可能与目前使用的版本有关系(Qgis2.8.8,qt4.7.1)。

确保数据库名称、用户名、密码无误后,还是连接不上Oracle数据库,则有可能是qgis源码中的一处地方需要修改:

src\app\ogr\qgsogrhelperfunctions.cpp

createDatabaseURI()

接口中:if (connectionType == "Oracle Spatial"),不知道是不是因为语言翻译过后,还是什么造成的原因,cmbDatabaseTypes->currentText()获取的值是中文的”oracle空间数据库“;

修改if ( connectionType == "Oracle Spatial" || connectionType.contains("Oracle"))

连接后Open,如果没有规定格式的表,则会报无效的数据源的错误提示;

正常显示如下:

添加Oracle空间图层效果如下:

添加Oracle GeoRaster图层失败了,这个不知道是环境库的问题,还是什么折腾很久也没弄出来!

GeoRaster库应该是gdal_GEOR.dll,ogr_OCI.dll,不知道是不是,希望知道的解答下。

posted @ 2016-05-26 15:20  伍人间  阅读(2567)  评论(0编辑  收藏  举报