基于OCI技术的Oracle数据库连接
- 格式:pdf
- 大小:494.73 KB
- 文档页数:4
oci后缀OCI后缀是指Object Connector Interface的简称,是Oracle公司推出的一种数据库连接技术。
通过OCI,开发人员可以使用各种编程语言与Oracle数据库进行交互,实现数据的读取、写入和修改等操作。
本文将介绍OCI后缀的概念、优势以及使用方法。
一、概念介绍OCI后缀即Object Connector Interface,它是Oracle数据库提供的一种应用编程接口,用于实现程序与数据库的连接和交互。
通过OCI后缀,开发者可以使用C、C++等编程语言来编写与Oracle数据库的应用程序,实现数据的访问和操作。
二、优势分析1. 高性能:OCI后缀采用了Oracle数据库底层的C语言接口,能够直接与数据库进行交互,因此具有较高的性能优势。
相比其他的数据库连接方式,OCI可以更高效地对数据库进行读写操作,提供更好的响应速度和并发性能。
2. 数据安全:OCI后缀支持使用Oracle数据库的安全特性,如数据加密、访问控制等,可以有效保护数据库中的数据安全。
开发者可以通过OCI来实现对敏感数据的加密处理,避免数据泄露和非法访问。
3. 多语言支持:OCI后缀提供了对多种编程语言的支持,如C、C++等。
这意味着开发者可以根据自己的编程习惯和需求,选择合适的编程语言来编写与Oracle数据库的应用程序。
同时,OCI还提供了一系列的开发工具和文档,方便开发者进行开发和调试。
三、使用方法1. 安装OCI驱动程序:在开始使用OCI后缀之前,首先需要安装相应的OCI驱动程序。
可以从Oracle官方网站下载并安装最新的OCI驱动程序,根据操作系统和编程语言选择合适的版本。
2. 配置连接参数:在编写OCI应用程序时,需要正确配置连接参数。
包括数据库的地址、端口、用户名、密码等信息。
使用OCI提供的API或者相关库函数,可以方便地进行连接参数的配置和管理。
3. 连接数据库:使用OCI提供的连接函数,可以与Oracle数据库建立起连接。
oracle数据库连接方法
Oracle数据库的连接方法有多种,以下列举两种常见的方式:
方法一:
1. 找到tnsnames.ora文件,打开后可以看到类似红色框中的配置。
2. 复制一份配置,放到tnsnames.ora文件底部,然后对其进行修改。
可以根据自己的情况设置四个位置:自定义数据库名、根据远程数据库地址修改地址、根据远程数据库端口号修改端口号、根据远程数据服务名修改服务名。
3. 修改完成后保存,再次打开PLSQL,只要填写正确的用户名密码,并选择刚刚自定义的数据库名,点击确定就可以连接数据库了。
方法二:
1. 从开始菜单中找到Oracle的Net Manager工具,单击打开。
2. 在Net Manager中,找到服务命名,可以看到刚刚配置的数据库名(服务命名),里面的配置和刚刚在tnsnames.ora文件修改的是一样的。
3. 在Navicat中改完重启后,再次打开Navicat,按照上图操作进入Oracle
新建连接界面。
Oracle数据库连接的⼏种⽅式⼀、本地通过JDBC获得Oracle数据库连接通过JDBC获得Oracle数据库连接,有三种⽅式:OCI⽅式、thin⽅式和JdbcOdbc桥⽅式。
OCI⽅式依赖于本地的动态链接库,如果在本地安装了Oracle数据库客户端可以采⽤该⽅式;⽽thin⽅式为纯java的数据库连接⽅式;JdbcOdbc桥⽅式依赖于本地ODBC数据库源的配置,这种⽅式⼀般不太被采⽤。
1、OCI⽅式 先在本地安装Oracle客户端,安装完之后,在安装的路径中可以找到…/jdbc/lib/classes12.zip⽂件,我们在环境变量classpath中设置classes12.zip所在的路径。
然后通过以下的数据库连接类,在本地通过OCI⽅式获得Oracle数据库连接。
/*** 在本地获得数据库连接*/package com.j2ee.db;import java.util.*;import java.sql.*;import javax.sql.*;import java.io.*;import oracle.jdbc.driver.*;import javax.naming.*;/*** 通过OCI⽅式获得Oracle数据库连接*/public class DbConnection{ final static String sDBDriver = "oracle.jdbc.driver.OracleDriver"; final static String sConnStr = "jdbc:oracle:oci8:sr/sr@ora199"; /** * */ public DbConnection() { } /** * 获得Oracle数据库连接 */ public java.sql.Connection connectDbByOci() { java.sql.Connection conn=null; try { Class.forName(sDBDriver); conn = DriverManager.getConnection(sConnStr); } catch (Exception e) { System.out.println("ERROR:"+e.getMessage()); } return conn; }}/*** 在本地获得数据库连接*/package com.j2ee.db;import java.util.*;import java.sql.*;import javax.sql.*;import java.io.*;import oracle.jdbc.driver.*;import javax.naming.*;/*** 通过thin⽅式获得Oracle数据库连接*/public class DbConnection{ private String sConnStr = ""; /** * 缺省构造器 */ public DbConnection() { sConnStr = "jdbc:oracle:thin:@10.1.4.199:1521:ora199"; } /** * @param ip,serviceName */ public DbConnection(String ip,String serviceName) { sConnStr = "jdbc:oracle:thin:@"+ip+":1521:"+serviceName; } /** * 通过thin⽅式获得Oracle数据库的连接. */ public java.sql.Connection connectDbByThin() { java.sql.Connection conn=null; try { Class.forName(sDBDriver); conn = DriverManager.getConnection(sConnStr,"sr","sr"); } catch (Exception e) { System.out.println("ERROR:"+e.getMessage()); } return conn; } /** * 通过thin⽅式获得Oracle数据库的连接. * @param userId,password */ public java.sql.Connection connectByJdbc(String userId,String password) { java.sql.Connection conn=null; try { Class.forName(sDBDriver); conn = DriverManager.getConnection(sConnStr,userId,password); } catch (Exception e) { System.out.println("ERROR:"+e.getMessage()); } return conn; }} 这种⽅式运⽤起来⽐较灵活,简单,具有较强的移植性和适⽤性。
Oracle数据库远程连接设置的四种方法Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。
第一种情况:若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。
不过要注意环境变量%ORACLE_HOME%/network/admin/是否设置。
第二种情况:本机未安装oracle服务器,也未安装oracle客户端。
但是安装了pl sql development、toad sqldevelopment、sql navigator等管理数据库的工具。
在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。
这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例:1、在安装oracle服务器的机器上搜索下列文件:∙oci.dll∙ocijdbc10.dll∙ociw32.dll∙orannzsbb10.dll∙oraocci10.dll∙oraociei10.dll∙sqlnet.ora∙tnsnames.ora∙classes12.jar∙ojdbc14.jar把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。
如放置路径为D:oraclient。
2、配置tnsnames.ora,修改其中的数据库连接串。
1.oracledata =2.3.(DESCRIPTION =4.5.(ADDRESS_LIST =6.7.(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))8.9.(CONNECT_DATA =10.11.(SERVICE_NAME = oracledata)12.13.)其中,oracledata是要连接的服务名;HOST = 192.168.0.58,是服务器IP地址;PORT = 1521是端口号。
用oci开发oracle数据库的方法OCI是Oracle提供的一种基于C/C++语言的接口,用于访问Oracle数据库。
在OCI开发的过程中,可以使用OCI提供的函数来执行各种类型的数据库操作。
本文将介绍OCI开发Oracle数据库的一般步骤。
1. 安装Oracle数据库客户端在使用OCI开发Oracle数据库之前,您需要安装Oracle数据库客户端。
Oracle客户端包含OCI库和头文件。
建议使用与目标Oracle数据库版本相同的客户端。
2. 配置开发环境为了使用OCI进行开发,你需要在你的开发环境中配置相关的Oracle环境变量。
设置ORACLE_HOME和LD_LIBRARY_PATH环境变量,以便OCI库和头文件所在的目录被正确找到。
3. 设置OCI环境使用OCI开发Oracle数据库之前,需要创建OCI环境和错误处理器。
OCI环境是OCI函数调用所需的上下文信息,可通过OCIEnvCreate函数创建。
OCIEnvCreate函数需要连接模式和错误处理器作为输入参数。
4. 连接到Oracle数据库在使用OCI连接Oracle数据库之前,您需要知道以下信息:· Oracle数据库的SID或服务名称;· 数据库主机名或IP地址;· 使用的端口号;· 连接的用户名和密码。
您可以使用OCI函数OCILogon或OCIConnect来连接Oracle数据库。
其中OCILogon函数使用数据库SID或服务名来连接数据库,而OCIConnect函数使用主机名、端口号和服务名称。
5. 执行SQL语句使用OCI函数OCIStmtPrepare和OCIStmtExecute来执行SQL语句。
OCIStmtPrepare用于准备一个SQL语句的执行,而OCIStmtExecute函数用于实际执行该SQL语句。
执行SQL语句可能涉及到绑定参数和获取结果集,您可以使用OCI函数OCIBindByPos、OCIDefineByPos和OCIStmtFetch来完成这些操作。
Oracle协议1. 简介Oracle协议是针对Oracle数据库的一种通信协议,用于在客户端和Oracle服务器之间进行数据交互和通信。
Oracle协议支持在各种平台和网络环境中使用,提供了高效、安全和可靠的数据库连接和操作功能。
2. 协议特性2.1 客户端-服务器架构Oracle协议采用客户端-服务器架构,客户端应用程序通过Oracle协议与远程的Oracle服务器进行通信。
这种架构可以实现服务器的负载均衡和故障转移,提高系统的可用性和稳定性。
2.2 多种网络传输方式支持2.3 数据安全性保障Oracle协议提供了多种安全机制,确保数据在传输过程中的机密性和完整性。
其中包括加密技术、身份验证、访问控制等。
这些安全机制可以有效防止数据泄漏和非法访问,提高数据库的安全性。
2.4 数据库事务支持Oracle协议支持数据库事务的提交、回滚和锁定操作。
这使得应用程序可以在Oracle数据库上进行事务性操作,确保数据的一致性和可靠性。
同时,Oracle协议还提供了并发控制机制,解决了多个用户同时访问数据库的竞争问题。
2.5 数据库连接池管理Oracle协议支持数据库连接池的管理,提供了连接池的创建、销毁、连接分配和回收等功能。
连接池可以减少应用程序与数据库的连接开销,提高系统的性能和资源利用率。
此外,连接池还可以实现连接的复用和共享,提高系统的可扩展性。
3. 协议通信过程Oracle协议的通信过程主要包括建立连接、会话管理、数据交互和连接终止等步骤:3.1 建立连接客户端应用程序通过指定Oracle服务器的主机名和监听端口建立与服务器的连接。
连接请求经过网络传输到服务器端,服务器端根据连接请求进行身份验证等操作,并返回连接响应给客户端。
3.2 会话管理连接建立后,客户端和服务器之间可以进行会话管理。
客户端可以发送SQL语句和其他数据库操作请求到服务器端,服务器端执行相应的操作并返回结果给客户端。
期间还可以进行数据的查询、插入、更新、删除等操作。
OCI(Oracle Call Interface)是Oracle公司提供的由头文件和库函数等组成的一个访问Oracle数据库的应用程序编程接口(Application Programming Interface,API)。
它允许开发人员在第三代编程语言(包括C, C++, COBOL与FORTRAN)中通过SQL(Structure Query Language)来操纵Oracle数据库。
OCI是一种开放标准,其规范被广泛应用于各种应用程序开发,使得不同的软件和系统可以相互协作。
OCI接口标准提供了一组通用的函数和协议,用于与Oracle数据库进行交互。
这些函数和协议使得开发人员可以执行SQL查询、管理数据库连接、处理数据等操作。
OCI接口标准具有以下特点:
跨平台性:OCI接口标准可以在不同的操作系统和硬件平台上使用,使得开发人员可以轻松地在不同的环境中开发和部署应用程序。
高效性:OCI接口标准提供了高效的数据库访问机制,可以快速地执行SQL 查询和处理数据。
安全性:OCI接口标准提供了安全机制,可以保护应用程序和数据库免受攻击。
灵活性:OCI接口标准提供了丰富的函数和协议,可以满足各种不同的应用程序需求。
总之,OCI接口标准是一种广泛使用的应用程序编程接口,它为开发人员提供了与Oracle数据库交互的便捷方式,同时也为应用程序的开发和部署提供了灵活性和高效性。
orcale应用技巧大多数应用程序使用 OCI 的ODAC 标准方式来连接 Oracle 数据库服务器。
这是使用第三方开发语言设计 Oracle 应用程序最常用的方法。
所有的 OCI 接口都作为内部库来使用,使得编译生成的应用程序非常小。
但是,这需要在客户机上安装 Oracle 客户端软件,这使得安装和管理要花费额外的开销。
有时,安装 Oracle 客户端程序甚至是不可能的。
例如,如果你需要在远程计算机上设置你的应用程序,你不能提供特殊的文件支持。
ODAC Net 允许你的应用程序直接通过 TCP/IP 协议来连接 Oracle,而不需要 Oracle 客户端软件。
运行使用 ODAC Net 的应用程序,仅需要有一个支持 TCP/IP 协议的操作系统。
使用 ODAC Net 连接 Oracle 服务器,你需要知道 Oracle 服务器的地址,监听端口号以及数据库实例名称。
在你的应用程序中使用 Net 选项前,你只需要设置 TOraSession 对象的选项 Net 为True 且指定它的Server 属性为指定的数据库。
如果使用 ODAC 的标准方式通过 OCI 来连接数据库,你必须设置 Server 属性为 TNS 别名,但现在使用 ODAC 的 Net 选项,你只需要指定数据库字符串,格式如下: Host:Port:SID.这里, Host 指服务器地址, Port 指服务器监听端口号, SID 指特定的系统实例名称。
这里有个例子示范不使用 OCI 而连接数据库:varSession: TOraSession;. . . := True;ername := 'Scott';Session.Password := 'tiger';Session.Server := '205.227.44.44:1521:orcl';Session.Connect;注意:这些是你的应用程序要支持 Net 选项时所必须的。
ORACLE的客户端如何连接到数据库Oracle是一种常用的关系数据库管理系统(RDBMS),它提供一个功能强大的数据库服务器,用于存储和管理大量的结构化数据。
在使用Oracle时,客户端需要与数据库服务器建立连接以进行数据访问和操作。
下面是使用Oracle客户端连接到数据库的步骤及相关说明。
1. 安装Oracle客户端软件:该软件包含了用于连接Oracle数据库服务器的组件和工具。
在安装过程中,需要指定要安装的组件和目标目录,并配置所需的连接参数。
2. 配置Oracle客户端:在安装完成后,需要进行一些配置和设置以确保Oracle客户端与数据库服务器之间的连接顺利。
这些包括设置网络协议、监听器等。
3. 创建数据库连接信息:在Oracle客户端中需要配置数据库连接信息。
连接信息包括数据库服务器名称或IP地址、监听器端口号、服务名称或SID等等。
这些信息将用于构建连接字符串。
4.构建连接字符串:连接字符串是用于建立与数据库服务器的连接的参数集合。
它通常包含用户名、密码、数据库服务器地址、监听器端口号、服务名称或SID等。
5. 使用连接字符串连接数据库:在Oracle客户端提供的工具中,使用连接字符串连接到数据库服务器。
这些工具可以是SQL*Plus、SQL Developer、TOAD等。
连接过程中,需要提供连接字符串、用户名和密码。
6. 进行数据库操作:完成连接后,可以使用SQL语句或其他Oracle工具进行数据库操作,如查询数据、插入、更新和删除数据等。
根据需要,还可以执行数据库管理任务,如创建表、索引、存储过程等。
7. 断开与数据库服务器的连接:完成数据库操作后,需要断开与数据库的连接以释放资源。
在Oracle客户端的退出操作中,可以选择断开连接或保持连接。
总结:连接到Oracle数据库需要安装Oracle客户端软件,并进行相关的配置和设置。
然后,配置数据库连接信息并构建连接字符串,使用连接字符串连接到数据库服务器。
收稿日期:2003-12-03基金项目:广东省科技计划项目资助项目(2003C101037);广东省自然科学基金重点资助项目(010421)作者简介:曾志聪(1979 ),男,广东韶关人,硕士研究生,研究方向为计算机网络。
基于OCI 技术的Oracle 数据库连接曾志聪,姚国祥(暨南大学网络中心,广东广州510632)摘 要:Oracle 数据库是目前应用最广泛的数据库之一,基于Oracle 数据库的大型应用对系统响应时间提出了越来越高的要求,如何有效地提高Oracle 数据库的访问效率,减少系统等待时间成为一个热门的研究问题。
文中介绍了Oracle Call In ter face(OCI)技术及其新特性,并通过分析和对比ODBC,JDBC 的实现机理,表明了OCI 技术在访问Oracle 数据库上性能的优越性。
最后描述了OCI 技术的编程机制,用OCI 技术实现了访问Oracle 数据库的典型应用,为OCI 技术的应用提供了技术参考。
关键词:Oracle 调用接口;JDBC 驱动接口;ODBC 驱动接口;Oracle 数据库;数据库接口中图分类号:T P311.138 文献标识码:A 文章编号:1005-3751(2004)08-0011-03Oracle Database Connection Based on OCI TechnologyZENG Zhi cong ,YAO Guo x iang(N etw ork Center of Jinan University,Guang zhou 510632,China)Abstract:Oracle i s one of the most popular databases.As the demand for a shorter response ti m e in large applicati ons based on Oracle database is i ncreasing,how to shorten the response time and effectivel y acces s an Oracle database become a hot topic and gain our research interest.In this paper Oracle call i nterface (OCI )technology and its new features are introduced.T he implementing mechanism of ODBC,JDBC and OC I are compared to show the better performance of OC I on accessing an Oracle database.Finally,the mechanism of OCI programming is particularly described and some typical functions implemented with OC I for accessing Oracle databases are provided for references.Key words:OCI;JDBC;ODBC;Oracle;database API0 引 言Oracle Call Interface(OCI)是Ora cle 的数据库调用接口。
通过OCI,一个应用程序可以控制所有SQL 语句的执行。
OCI 支持的SQL 语句类型有:DDL 、控制语句(事务控制、会话控制、系统控制)、查询、DM L 、PL/SQL 、嵌入式SQL 。
OCI 能够最大程度地控制程序的运行,执行Or acle 服务器所允许的所有数据库操作;可以访问Oracle 数据库服务器里的所有数据类型,包括标量值、集合和所有对象类型的实例。
通过OC I 的导航调用(navigational call)可以创建、访问、锁定、删除、复制、刷新对象,可以获得对象及其元对象的引用,可以动态获取、修改对象的属性值。
OCI 以动态运行时库的形式(OCI 库)提供了一个标准函数库存取和检索数据。
这样程序可以在运行时再动态链接OCI 库,同时减少了在第三代语言程序中嵌入SQL 或PL/SQL 的需要[1]。
OC I 支持C 和C++的数据类型、调用规则、语法和语义,便于程序员用C 或C++编程。
OCI 允许程序员使用熟悉的第三代编程技术和程序开发工具开发程序,提高了编程效率。
OCI 程序既具有SQL 非过程性能的优点,也具有第三代程序设计语言的过程性能和灵活性,使开发的编程技术具有更强的数据处理能力[2]。
OC I 在所有运行Oracle 的平台上具有良好的可移植性,程序无须太大修改就可以运行在U nix,Linux,Win dow s 操作系统下。
1 Oracle 9i Release 9.0.0版本下OC I 的新特性(1)连接池(connec t ion pooling)。
该特性允许程序仅通过一个物理连接就可以使用大量的逻辑连接。
为了平衡负荷,几个会话(session)使用一组可重用的物理连接。
连接池由OCI 管理,而不是应用程序。
假设一个连接到Oracle 后端数据库的WEB 服务器,数据库服务器向它发出数个并发服务请求。
在这种情况下,传统的应用是要显式管理到数据库的连接,然而也可以使用连接池功能把这个任务留给OCI 完成,以减少服务器负荷。
网页服务器第14卷 第8期2004年8月 微 机 发 展M icr ocomputer Dev elopment V ol.14 N o.8Aug.2004和电子邮件服务器的中间层都可以使用这个功能以改善性能。
(2)可滚动游标(scrollable cursors)。
游标是Oracle 用来管理SQL 结果集的。
在Oracle 9i 之前的OCI 版本只支持向前滚动游标,只能顺序访问结果集中的记录。
现在则可以随机访问游标中的任一记录。
(3)全球性支持。
不同的OC I 调用在SQL 语句、数据、元数据、对象和错误信息中都支持U TF-16字符编码标准(UCS Transformat ion Form -16)。
由于在计算机应用领域中存在着几十种互不相同的字符集,当在使用不同字符集的计算机系统之间进行信息交换时,人们可能会得到一些莫名其妙的东西。
紊乱的字符编码给信息交换以及软件开发等带来了极大的不便。
Unicode 是目前得到广泛认可并且几乎涵盖了全世界各种文字的字符集。
而U TF-16是U nicode 的一种变形表示方式。
对UTF-16的支持,增加了OCI 程序的通用性。
(4)中间层。
在客户端验证上增加了新的OCI 属性,客户验证更方便、更安全可靠。
(5)AnyType,AnyData 和AnyDataSet [3]。
AnyType 可以是SQL 的任一数据类型。
OCI 中允许将自定义的数据模型化,允许在同一个表的同一列中存储不同类型的数据,并可在程序中查询到这些数据。
OCIAnyData 封装了数据类型信息和这种类型的一个实例。
大部分SQL 中定义的数据类型的数据均可以转换为OCIAnyData,而OICAnyData 可以转换为原来的数据。
OCIAnyDataSet 封装了数据类型信息和这种类型的实例集合。
(6)用大对象(LOB)列代替了长整形(long)列。
(7)支持对象子类型的定义。
(8)类型演变(Type Evolution)。
类型演变即是支持类型属性的添加、删除和修改。
使用OCIDesrcibeAny()函数可以返回请求类型的最新版本。
(9)多重集合类型。
在OCI 应用中,集合也可以直接或间接作为另一集合的元素。
(10)上下文。
外部初始化上下文也就是指可以通过OCI 修改一个应用程序上下文的属性。
(11)高速缓存。
增强了程序的性能。
2 OC I 与JDBC,ODBC 等数据库接口的性能比较JDBC(Java Database Connectivity)是Ja va 连接关系数据库的标准接口。
Ora cle 在客户端提供两种类型的JDBC 驱动程序:瘦JDBC 驱动(thin drive r)和JDBC/OCI 驱动(OCI driver)。
瘦JDBC 驱动是为了在浏览器执行的Java a pplet 而设计的,因此它用100%的纯Java 实现,通过Java Sockets 接口访问数据,与平台无关,无须在客户端安装任何Oracle 的程序。
JDBC/OCI 驱动是通过调用OCI 接口来访问数据,如图1所示,与平台相关,需要在客户端安装OCI 库等Orac le 客户端程序,不可以用在applet 上。
为了能随着a pplet 快速下载到浏览器,瘦JDBC 被设计成很小的文件。
由于瘦JDBC 的文件大小受到限制,所以访问数据的性能和充分利用Oracle 数据库特性方面都比不上JDBC/OCI 驱动。
两者比较,为了可移植性好,选用瘦JD BC 驱动;为使性能最优,推荐用JDBC/OCI 驱动[4]。
图1 C/S 模式的JDBC/OCI 驱动结构图微软提出的ODBC (Open Data base Connectivity)是用C 语言实现的应用程序接口,为应用程序提供了从数据库管理系统(DBM S)中访问数据的能力。
ODBC 的结构包括四个主要部分:应用程序接口、驱动器管理器、数据库驱动器和数据源。
如图2所示,Oracle 的ODBC 驱动也是通过OCI 接口来发出请求和接收数据源传回来的数据。
图2 O racle 中ODBC 驱动的体系结构OC I 是针对Oracle 数据库设计的底层API,经过了O racle 公司的专门优化,具有出色的性能。
OCI 在Orac le 中使用最为广泛,所有到Oracle 的接口都通过OCI,这包括:执行SQL 语句的PL/SQL 应用程序;Pro*C 应用程序;使用基于OC I 的JDBC 驱动程序的Java 应用程序;使用Oracle ODBC 驱动程序的C 应用程序;使用OLEDB 驱动程序的VB 应用程序;分布式的SQL 。
由图2可见,ODBC 应用程序需要经过ODBC 驱动程序管理器和ODBC 驱动程序两层,才能和OC I 接口建立联系,与OC I 程序相比,调用层次多了,性能下降明显。
由图1知道,JDBC/OCI 对数据库的访问层次在OC I 之上,所以访问速度相对OCI 要慢。
同时,ODBC 、JDBC 为了兼容不同的数据库,提供的是一组标准函数,因此不完全支持Oracle 某些基本API 所提供的高级特征,不能完全发挥Oracle 数据库的性能。