ORACLE 8i的普通连接技术的介绍
====================================
欢迎大家同我交流:小白 [email protected]
欢迎转载,请保留本声明,谢谢!
====================================
Oracle 8.1.6 中引入普通连接技术的概念(Generic connectivity),这一连接解决方案满足了对许多异种数据库存储的数据访问需求,同时并不需要安装ORACLE的透明网关(ORACLE Transparent Gateway)。该特性允许使用业界标准 ODBC 和 OLEDB 建立透明连接。
什么是普通连接(Generic connectivity)
普通连接是ORACLE的一个低端数据集成解决方案,目标是提供ORACLE 8i可以连接到非oracle数据库的能力。它的实现,是通过异种服务代理(Heterogeneous Services)来实现的。
异种服务代理的类型:
ODBC agent for accessing ODBC data providersOLE DB agent for accessing OLE DB data providers that support SQL processing--sometimes referred to as OLE DB (SQL)ODBC agent for acceng OLE DB data providers without SQL processing support--sometimes referred to as OLE DB (FS)
普通连接的系统结构图
ORACLE客户端程序访问非ORACLE数据库的过程:客户端程序是通过SQL*NET连接ORACLE服务器,关于异种数据库的访问,交给HS代理实现。
HS代理通过下面的功能组件实现:ODBC管理器->ODBC驱动程序->数据库的网络客户端->目标数据库。
如果异种库和ORACLE数据库位于同一台服务器上,一般来说驱动程序是可以直接和本机的数据库通讯,就可以省去数据库的网络客户端这一层。
数据类型的转换
ORACLE自动实现ODBC和OLEDB数据类型到ORACLE数据类型的转换,具体的对应转换可以参考ORACLE的联机帮助http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76960/datatype.htm。
普通连接的限制
1 含有BLOB列的表必须要有一个主键字段;
2 BLOB/CLOB数据不直接通过pass-through的查询方式;
3 在WHERE子句中包括了函数的Updates或deletes语句不被允许;
4 不支持存储过程的调用;
HS代理(odbc/oledb)不支持分布式事务(distributed transactions),只支持单点的事务(single-site transactions)。
普通连接代理的配置
下面,我介绍一下,利用普通连接的ODBC配置。利用HS odbc代理连接SQL SERVER 2000。
第一步