c 访问本机oracle

大家好,今天我们来讲一下如何使用C语言连接访问本机Oracle数据库。Oracle是一款非常流行的数据库管理系统,许多企业中都在使用它进行数据存储和管理。下面我们就来看看怎样使用C语言访问本机Oracle数据库。

使用C语言连接Oracle数据库首先要安装Oracle的客户端驱动。Oracle的客户端驱动有多个版本,我们需要根据自己的操作系统版本和Oracle数据库版本来选择对应版本的客户端驱动。驱动一般会提供给我们对应的头文件和库文件,我们在编写程序时需要使用到。

//连接Oracle数据库 #include#include#include#includeint main() { OCIEnv *envhp; OCISvcCtx *svchp; OCIError *errhp; OCIStmt *stmthp; char *sql = "select * from employee"; char *username = "scott"; char *password = "tiger"; char *connstr = "ORCL"; if(OCIEnvCreate(&envhp, OCI_DEFAULT, 0, 0, 0, 0, 0, 0)) { printf("OCIEnvCreate failed\n"); return -1; } if(OCIHandleAlloc(envhp,(void **)&svchp,OCI_HTYPE_SVCCTX,0,NULL)) { printf("OCIHandleAlloc failed\n"); return -1; } if(OCIHandleAlloc(envhp, (void**)&errhp, OCIErr, 0, NULL)) { printf("OCIHandleAlloc failed\n"); return -1; } if(OCIHandleAlloc(envhp, (void**)&stmthp, OCI_HTYPE_STMT, 0, NULL)) { printf("OCIHandleAlloc failed\n"); return -1; } if(OCIAttrSet(svchp, OCI_HTYPE_SVCCTX, envhp, 0, OCI_ATTR_ENV, errhp)) { printf("OCIAttrSet OCI_ATTR_ENV failed\n"); return -1; } if(OCILogon(envhp, errhp, &svchp, (const OraText*)username, strlen(username), (const OraText*)password, strlen(password), (const OraText*)connstr, strlen(connstr))) { printf("OCILogon failed\n"); return -1; } if(OCIStmtPrepare(stmthp, errhp, (unsigned char*)sql, strlen(sql), OCI_NTV_SYNTAX, OCI_DEFAULT)) { printf("OCIStmtPrepare failed\n"); return -1; } if(OCIStmtExecute(svchp, stmthp, errhp, 0, 0, 0, 0, OCI_COMMIT_ON_SUCCESS)) { printf("OCIStmtExecute failed\n"); return -1; } printf("查询结果:\n"); //接下来我们就可以处理查询结果了 //... if(OCIHandleFree(stmthp, OCI_HTYPE_STMT)) { printf("OCIHandleFree OCI_HTYPE_STMT failed\n"); return -1; } if(OCIHandleFree(svchp, OCI_HTYPE_SVCCTX)) { printf("OCIHandleFree OCI_HTYPE_SVCCTX failed\n"); return -1; } if (OCIHandleFree(envhp, OCI_HTYPE_ENV)) { printf("OCIHandleFree OCI_HTYPE_ENV failed\n"); return -1; } return 0; }