HubbleDotNet 提供了一个开放的数据库适配器接口,不但可以和SQL SERVER 连接,也可以和包括Oracle 在内的任何数据库连接,为基于这些数据库的应用实现全文搜索功能。本文主要说明如何为基于Oracle 数据库开发的项目提供全文搜索功能。
HubleDotNet 提供了两个连接Oracle 的适配器 Oracle 8i 和 Oracle 9i.
这个接口安装时就自带了,是通过 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 这个错误。
这个接口,安装时没有默认安装,因为要用这个接口必须要安装 .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
参考文章