C语言连接Oracle
C语言作为一门优秀的编程语言,在现代软件开发领域中广泛应用。在企业级应用中,Oracle 数据库是一款被广泛使用的关系型数据库管理系统。本文将介绍如何用C程序连接Oracle数据库并操作数据。
连接Oracle数据库
首先需要引入ocilib库文件,ocilib是Oracle公司提供的专门为C语言编写的ORACLE数据库访问的封装库。
#include
在连接Oracle数据库时,需要定义一个连接类型(OCI_Connection *conn),用来存放连接Oracle数据库的信息,例如:登录名、密码等等。使用OCI_ImmediateMode指定连接模式,该模式可以使程序在使用OCI函数时直接操作数据库,可以有效地提升程序的执行效率。
OCI_Connection *conn;
OCI_Environment *env;
env = OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT);
conn = OCI_ConnectionCreate("192.168.1.10:1521/orcl","userName","passwd",OCI_SESSION_DEFAULT);
OCI_SetImmediate(conn, TRUE);
其中OCI_Environment是ocilib库中的一个函数,用于初始化OCI环境。
关于Oracle数据库的用户名和密码,可以在Oracle Server Manager中创建和管理。在第三个参数中,指定数据库的URL,URL格式为“IP地址:端口号/服务名称”。服务名称可在Oracle Server Manager中查看。
操作Oracle数据库
连接Oracle数据库成功后,即可操作Oracle数据库。
1. 创建表
OCI_Statement *stmt;
stmt = OCI_StatementCreate(conn);
OCI_ExecuteStmt(stmt, "CREATE TABLE employee (id NUMBER, firstName VARCHAR2(50), lastName VARCHAR2(50))");
OCI_StatementFree(stmt);
创建表可以使用OCI_ExecuteStmt函数来实现,该函数支持执行任何SQL语句。
2. 插入数据
OCI_Statement *stmt;
stmt = OCI_StatementCreate(conn);
OCI_ExecuteStmt(stmt, "INSERT INTO employee VALUES (1, 'John', 'Doe')");
OCI_StatementFree(stmt);
插入数据时,同样可以使用OCI_ExecuteStmt函数。将插入的数据格式化成SQL语句传入OCI_ExecuteStmt函数即可。
3. 查询数据
OCI_Statement *stmt;
OCI_Resultset *rs;
OCI_Column *col;
int i;
stmt = OCI_StatementCreate(conn);
OCI_ExecuteStmt(stmt, "SELECT * FROM employee");
rs = OCI_GetResultset(stmt);
if(rs)
{
i = 0;
while(OCI_FetchNext(rs))
{
++i;
col = OCI_GetColumn(rs, 1);
printf("%d. ID:%ld\t", i, OCI_GetInt(col));
col = OCI_GetColumn(rs, 2);
printf("First Name:%s\t", OCI_GetString(col));
col = OCI_GetColumn(rs, 3);
printf("Last Name:%s\n", OCI_GetString(col));
}
OCI_CleanupResultset(rs);
}
OCI_StatementFree(stmt);
查询数据时,需要使用OCI_GetResultset函数获取结果集。通过OCI_FetchNext函数不断循环取出每一条记录,再使用OCI_GetColumn函数获取每一列的值并打印输出即可。
关闭连接
OCI_Cleanup();
程序结束时,需要用OCI_Cleanup函数释放OCI环境占用的资源。
总结
本文介绍了如何使用C程序连接Oracle数据库,并完成对数据库的操作。凭借ocilib库的优秀封装,连接和操作Oracle数据库并不复杂,是C程序员在企业级应用开发中必备技能。