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程序員在企業級應用開發中必備技能。