在连接 Oracle 数据库之前,首先需要在你的系统上安装 OCI 驱动。
下面是一个使用 OCI 连接到 Oracle 数据库并执行 CRUD 操作的 C 语言代码示例:
``` #include <stdio.h> #include <oci.h>
int main() { /* 声明 OCI 句柄 */ OCIEnv *env; OCIServer *server; OCIError *err; OCISession *session; OCISvcCtx *svc; OCIStmt *stmt;
/* 初始化 OCI 环境 */
OCIEnvCreate(&env, OCI_DEFAULT, (dvoid *)0, 0, 0, 0, 0, (dvoid **)0);
OCIHandleAlloc((dvoid *)env, (dvoid **)&err, OCI_HTYPE_ERROR, (size_t)0, (dvoid **)0);
/* 连接到 Oracle 数据库 */
OCIHandleAlloc((dvoid *)env, (dvoid **)&server, OCI_HTYPE_SERVER, (size_t)0, (dvoid **)0);
OCIServerAttach(server, err, (text *)"dbname", strlen("dbname"), OCI_DEFAULT);
OCIHandleAlloc((dvoid *)env, (dvoid **)&session, OCI_HTYPE_SESSION, (size_t)0, (dvoid **)0);
OCIAttrSet((dvoid *)session, OCI_HTYPE_SESSION, (dvoid *)&user, strlen(user), OCI_ATTR_USERNAME, err);
OCIAttrSet((dvoid *)session, OCI_HTYPE_SESSION, (dvoid *)&password, strlen(password), OCI_ATTR_PASSWORD, err);
OCISessionBegin(svc, err, session, OCI_CRED_RDBMS, OCI_DEFAULT);
OCIAttrSet((dvoid *)svc, OCI_HTYPE_SVCCTX, (dvoid *)server, (ub4)0, OCI_ATTR_SERVER, err);
OCIAttrSet((dvoid *)svc, OCI_HTYPE_SVCCTX, (dvoid *)session, (ub4)0, OCI_ATTR_SESSION, err);
/* 创建 SQL 语句 */
text *insert_stmt = "INSERT INTO mytable (id, name) VALUES (:1, :2)";
text *select_stmt = "SELECT name FROM mytable WHERE id = :1";
text *update_stmt = "UPDATE mytable SET name = :2 WHERE