oci 连接 oracle

oci 连接 oracle,第1张

ORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。

在普通的情况下,用户可以通过SQL和PL/SQL来访问数据库中的数据。ORACLE数据库除了提供SQL和PL/SQL来访问数据库外,还提供了一个第三代程序设计语言的接口,用户可以通过C、COBOL、FORTRAN等第三代语言来编程访问数据库。OCI就是为了实现高级语言访问数据库而提供的接口。OCI允许开发者在程序里使用SQL和PL/SQL来访问数据库。开发者可以使用第三代语言来编写程序,而使用OCI来访问数据库。

一、 定义并初始化所需各变量

envhp、srvhp、errhp、svchp、authp、hndlp、stmthp、等等

二、连接数据库

1、 OCIInitialize。初始化OCI程序环境

2、OCIEnvInit。 初始化OCI环境句柄

3、 OCIHandleAlloc。分配各句柄,需要分配的句柄类型如下:

OCI_HTYPE_SVCCTX,

OCI_HTYPE_ERROR,

OCI_HTYPE_SESSION,

OCI_HTYPE_SERVER,

4、 OCIServerAttach。指定资料源路径

5、 OCIAttrSet。设置各项参数。需要设置的参数类型如下:

OCI_ATTR_SERVER 使用的句柄型为OOCI_HTYPE_SVCCTX

OCI_ATTR_USERNAME

OCI_ATTR_PASSWORD

上面两个参数使用的句柄类型为OCI_HTYPE_SESSION

6、 OCISessionBegin。创建并开始会话

7、 OCIAttrSet。设置会话参数类型OCI_ATTR_SESSION,使用句柄为OCI_HTYPE_SVCCTX

8、 OCIHandleAlloc。分配OCI_HTYPE_STMT型陈述句柄

三、操作数据库

1、OCIStmtPrepare。准备事件处理

2、OCIBindByPos、OCIBindByName(OCIDefineByPos)绑定(定义)变量。如果是多行资料,则需要使用

OCIBindArrayOfStruct(OCIDefineArrayOfStruct)函数来绑定(定义)存放该数据的数组

3、OCIStmtExecute。执行SQL语句

4、OCITransCommit(OCITransRollback)。提交(回滚)当前事务

四、断开数据库

1、OCISessionEnd。结束会话

2、OCIServerDetach。断开与服务器的连接

3、OCIHandleFree。释放已分配的各句柄。需要释放的句柄如下:

OCI_HTYPE_SVCCTX,

OCI_HTYPE_ERROR,

OCI_HTYPE_SESSION,

OCI_HTYPE_SERVER,

OCI_HTYPE_STMT

OCI_HTYPE_ENV

五、提取出错描述信息

1、OCIErrorGet。上述各函数若执行失败,都可以使用该函数来提取出错信息的ORCALE描述。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/471909.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-06
下一篇2023-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存