eaglet

本博专注于基于微软技术的搜索相关技术
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

HubbleDotNet 提供了一个开放的数据库适配器接口,不但可以和SQL SERVER 连接,也可以和包括Oracle 在内的任何数据库连接,为基于这些数据库的应用实现全文搜索功能。本文主要说明如何为基于Oracle 数据库开发的项目提供全文搜索功能。

HubleDotNet 提供了两个连接Oracle 的适配器 Oracle 8i 和 Oracle 9i.

Oracle 8i

这个接口安装时就自带了,是通过 OLEDataProvider 来访问 Oracle 的,由于 OleDataProvider 的限制(参见 INFO: Limitations of Microsoft Oracle ODBC Driver and OLEDB Provider),这个接口只能操作 Oracle 8i 的一些数据类型,但对 Orable 9i 及以后的一些数据类型特别是 clob 类型无法进行操作。

连接字符串不可以用 SQL SERVER 适配器那种形式的连接字符串。

OleDbConnection 的连接字符串:

provider=MSDAORA;host=192.168.1.1;data source=MyTest;user id=system;password=xxx

provider = MSDAORA; 指明oledb 的提供者是oracle数据库

host 是远程 oracle 数据库所在服务器的IP地址,如果端口不是默认的 1521,还要加上一个 Port=xxxx;

data source 是要访问的 oracle 数据库的名字

user id 和 password 就不说了。

 

另外我们必须在HubbleDotNet 服务所在机器上安装 oracle 的客户端,否则会报

The Oracle(tm) client and networking components were not found 这个错误。

 

Oracle 9i

这个接口,安装时没有默认安装,因为要用这个接口必须要安装 .NET Managed Provider for Oracle,为了防止未安装.NET Managed Provider for Oracle 就使用,我默认没有安装这个接口,但接口所在的动态库已经被安装在 Program files/hubble.net/default 目录下。这个适配器可以操作 Oracle 9i 及其以后的所有Oracle 版本。

安装步骤

首先要安装 .NET Managed Provider for Oracle

这个是微软自带的访问 Oracle 的组件,下载地址 .NET Managed Provider for Oracle ,如果下载地址有变,可以到google 上搜索一下。

然后确认一下 Program files/hubble.net/default  目录下有OracleDBAdapter.dll 这个文件,如果没有,源码在 hubbledotnet 的源码里面 src/OtherDBAdapter/OracleDBAdapter 这个目录下,可以下载后编译生成。

接下来打开 QueryAnalyzer 并执行

SP_AddExternalReference 'dbadapter', 'OracleDBAdapter.dll'

执行成功会有如下提示:

Add OracleDBAdapter.dll on dbadapter successfully! Available after reboot hubble.net!

最后一步,重启 Hubble.Net 的服务,因为这个操作必须重启服务后才能生效。

这些完成后,Oracle 9i 的适配器就安装完成了。

连接字符串

该适配器要使用 .Net Managed Provider for Oracle 认识的连接字符串格式,可按下面格式输入连接字符串

server=192.168.1.1;data source=MyTest;user id=system;password=xxx

 

参考文章

.net 程序远程连接 Oracle 数据库

 

返回 HubbleDotNet 技术详解