在普通的情况下,用户可以通过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描述。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)