c 更新oracle数据

在使用c语言时,有时需要更新oracle数据库中的数据。这时我们可以使用Oracle提供的OCI接口函数,通过c语言代码来实现更新数据的操作。

假设我们需要更新一个表中的某一条数据,先要连接数据库,在连接成功后可以执行以下代码:

OCIEnv *envhp; // OCI环境句柄 OCIError *errhp; // OCI错误句柄 OCIServer *srvhp; // OCI服务器句柄 OCISvcCtx *svchp; // OCI服务上下文句柄 OCIStmt *stmthp; // OCI语句句柄 // 连接数据库 OCIInitialize((ub4) OCI_DEFAULT, (dvoid *)0, (dvoid * (*)()) 0,(dvoid * (*)()) 0, (dvoid * (*)()) 0 ); OCIEnvInit(&envhp, (ub4) OCI_DEFAULT, (size_t) 0, (dvoid **) 0 ); OCIHandleAlloc((dvoid *) envhp, (dvoid **) &errhp, OCI_HTYPE_ERROR, (size_t) 0, (dvoid **) 0); OCIHandleAlloc((dvoid *) envhp, (dvoid **) &srvhp, OCI_HTYPE_SERVER, (size_t) 0, (dvoid **) 0); OCIHandleAlloc((dvoid *) envhp, (dvoid **) &svchp, OCI_HTYPE_SVCCTX, (size_t) 0, (dvoid **) 0); OCIHandleAlloc((dvoid *) envhp, (dvoid **) &stmthp, OCI_HTYPE_STMT, (size_t) 0, (dvoid **) 0); OCIServerAttach(srvhp, errhp, (text *) "dbname", (sb4) strlen("dbname"), OCI_DEFAULT); OCIAttrSet((dvoid *) svchp, OCI_HTYPE_SVCCTX, (dvoid *) srvhp, (ub4) 0, OCI_ATTR_SERVER, errhp); OCIHandleFree((dvoid *) srvhp, OCI_HTYPE_SERVER); OCIHandleFree((dvoid *) errhp, OCI_HTYPE_ERROR);