OCI操作oracle数据库(word文档良心出品).docxVIP

  • 79
  • 0
  • 约2.13万字
  • 约 34页
  • 2021-01-26 发布于天津
  • 举报

OCI操作oracle数据库(word文档良心出品).docx

第 第 PAGE #页共33页 OCI简介 1 . OCI概述 OCI(Oracle Call Interfce ,即Oracle调用层接口)是Oracle公司提供的由头文 件和库函数等组成的一个访问Oracle数据库的应用程序编程接口 (application programmi ng in terface API),它允许开发人员在第三代编程语言(包括C, C++, COBC与FORTRAN)通过 SQL(Structure Query Language) 来操纵 Oracle 数据库, 而且0C在一定程度上支持第三代编程语言(诸如C, C++ COBO与 FORTRAN!数 据类型、语法等等。0C的显著特点是全面支持Oracle的面向对象技术,同时OCI 还具有如下的一些特点: 1) 非常有利于应用程序的设计; 2) 高度控制应用程序的执行; 3) 允许开发人员应用已熟悉的第三代程序设计语言来应用 OCI; 4) 支持动态SQL 5) 几乎所有的Oracle的开发工具都支持OCI; 6) 通过回调技术(callbacks)来实现动态绑定与定义; 7) 通过OCI的描述函数可以获取 Oracle数据库的各种参数; 8) 增强了数组在DML(data manipulation Ianguage) 语言中的应用; OCI接口支持Windows NT和Windows 95/98/2O0o/xP操作系统,它所支持的 C 语言编译器包括Borland C++和MicrosoftVisualC++ 等。在使用OC开发Oralce 数据库应用程序之前,应首先安装这些操作系统和 C语言编译工具。在选择安 装OC开发工具包后,Oracle安装程序将OC文件拷贝到oracle主目录内的以下子 目录中: ..BIN \:执行文件和帮助文件: ..\OCIINCLUD头文件; ..OCI\LIB\其中包含仍be和\msvc两个子目录,分别用于存储支持Borland C++ffiMicroSoflVisualC++的OCI库文件,这些库文件与OC源程序编译后所产生 的目标文件进行链接生成可执行程序。一个应用 OC程序的生成可执行应用程序 的过程如图1: 由此,我们可以看出:一个应用 OCI的应用程序与其它不连接数据库的应用程序 生成可执行程序的过程没有区别,在程序的链接阶段 OC库与源程序的目标代码 文件链接而生成可执行程序。 2. OCI程序的基本结构 在一个应用程序中,我们是通过调用 OC提供的库函数来实现对Oracle数据库的 操纵。OC提供了上百个函数,都是以OC开头的函数,比如创建OC环境的OCI 函数:OCIEnvCreate()。OC函数的一个特点或者说是难点就是它的参数特别多, 函数往往都有十几个参数。 一般情况下,一个OC应用程序都是在多用户环境下的。 在一个n层网络结构的配 置中,客户端的应用程序需要完成一些数据操纵,包括交换数据与处理数据。 - 个OC应用程序的基本结构包括: 1) 初始化0C环境和线程; 2) 分配必要的句柄与数据结构; 3) 建立与数据库的连接以及创建用户会话; 4) 通过SQI与Oracle服务器交换数据,而后再做数据处理: 5) 结束用户会话与断开与数据库的连接; 6) 释放在程序中所分配的句柄。 示意如图2。 图2 OCI程序的基本结构 3 ?在OCI应用程序中执行SQL的步骤 结构化查询语言(SQL Structure Query Language) 是操纵关系数据库的主流语 言,目前,几乎所有的商业数据库软件都支持 SQ语言。标准的SQ语言按照它的 功能不同,可以分为查询、操纵、定义以及控制四种类型。每一种都有若干关键 字,具体如表1所示。 一个SQ语句在0C应用程序中的执行步骤一般如下: 准备SQL语句。调用函数 OCIStmtPrepare(); 在SQ语句中绑定需要输入到SQ语句中的变量。对于DM语句来说,由于它带 有输入变量,我们可以通过调用一个或者多个函数 OCIBindByPos()、 OCIBindByName(等把输入变量的地址绑定在DM语句中的占位符中; 执行SQ语句。调用OCIStmtExecute()函数。对于DDLS句到这一步就完成了一 个语句的执行; 描述SQL中的输出的数据。如果有必要的话,我们可以调用函数OCIParamGet() 与OCIAttrGet()来获取我们所读取的记录的字段个数、 字段的数据类型以及字段 数据定义的最大长度。 定义输出变量。对于DQL(Data Query Language)语句,即SELEC的查询语句, 需要定义一定数量的变量用来接受所选择列的数据。我们可以调用 OCIDeflneByPos()、OCIDefineObject()函

文档评论(0)

1亿VIP精品文档

相关文档