c 如果连接oracle

2023年 8月 4日 31.4k 0

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程序员在企业级应用开发中必备技能。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论