c 连接oracle数据库代码

在C语言中,连接Oracle数据库是一个必不可少的功能。为了实现这一功能,我们需要使用Oracle提供的ODBC驱动程序,并编写相应的代码来连接和操作数据库。下面我们来介绍一下如何使用C语言连接Oracle数据库。

首先,我们需要安装ODBC驱动程序。Oracle提供了ODBC驱动程序的安装包,我们只需要按照提示进行安装即可。安装完成后,我们需要配置ODBC数据源。在Windows系统下,我们可以在“控制面板”中找到“ODBC数据源”,点击“添加”按钮选择我们需要连接的数据库,然后输入用户名和密码即可。配置完成后,我们就可以使用ODBC驱动程序来连接Oracle数据库。

// 连接Oracle数据库 SQLHENV henv; SQLHDBC hdbc; SQLRETURN ret; SQLCHAR* conn_string = (SQLCHAR*)"DSN=oracle;UID=user;PWD=password"; ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); ret = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); ret = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); ret = SQLDriverConnect(hdbc, NULL, conn_string, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("连接Oracle数据库失败!\n"); return -1; } printf("连接Oracle数据库成功!\n"); // 执行SQL语句 SQLHSTMT hstmt; SQLCHAR* sql_string = (SQLCHAR*)"SELECT * FROM table_name"; ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); ret = SQLExecDirect(hstmt, sql_string, SQL_NTS); if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) { printf("执行SQL语句失败!\n"); return -1; } // 处理查询结果 SQLCHAR column_name[32]; SQLINTEGER column_value; while (SQLFetch(hstmt) == SQL_SUCCESS) { SQLGetData(hstmt, 1, SQL_C_CHAR, column_name, sizeof(column_name), NULL); SQLGetData(hstmt, 2, SQL_C_LONG, &column_value, sizeof(column_value), NULL); printf("%s: %d\n", column_name, column_value); } // 释放资源 ret = SQLFreeHandle(SQL_HANDLE_STMT, hstmt); ret = SQLDisconnect(hdbc); ret = SQLFreeHandle(SQL_HANDLE_DBC, hdbc); ret = SQLFreeHandle(SQL_HANDLE_ENV, henv);