C语言打开Oracle数据库
1、简述:用C语言连接ORACLE数据库。有两个思路和目的

3、 查看/etc/profile文件export ORACLE_BASE=/share/oracleexport ORACLE_HOME=$ORACLE_BASE/product/10.2.1export ORACLE_SID=umailexport PATH=$PATH:$HOME/bin:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$LD_LIBRARY_PATHexport JAVA_HOME=/share/jdkexport AWT_TOOLKIT=MToolkit作用:解决tnsnames.ora问题

5、新test.pc文件,如下:#include <stdio.h>EXEC SQL INCLU肛舀辨乔DE SQLCA;int main(){ //声明SQL变量 EXEC SQL BEGIN DECLARE SECTION; VARCHAR user[20],pass[20],tnsname[20]; //VARCHAR预编译后为struct { unsigned short len; unsigned char arr[20];} char ename[20]; int empno; EXEC SQL END DECLARE SECTION; //声明C变量 int i=0; //变量赋值 strcpy(user.arr,"umail"); user.len=(unsigned short)strlen((char *)user.arr); strcpy(pass.arr,"umail"); pass.len=(unsigned short)strlen((char *)pass.arr); strcpy(tnsname.arr,"umail"); tnsname.len=(unsigned short)strlen((char *)tnsname.arr); //连接数据库 EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname; EXEC SQL declare emp_cursor cursor for select id,ename from umail.tt1; EXEC SQL open emp_cursor; EXEC SQL WHENEVER NOT FOUND DO break; while(1) { EXEC SQL fetch emp_cursor into :empno,:ename; printf("the empno %d\'s name is %s\n",empno,ename); i=i+1; } printf("Yeah!We get %d records\n",i); EXEC SQL close emp_cursor; EXEC SQL commit work release;}

7、编译方法:预编译 proc test.pc注:这步是依赖于$ORACLE_HOME/precomp/admin/pcscfg.cfg编译:gcc -o test test.c $ORACLE_HOME/lib/libclntsh.so

9、以上就是小编带给大家用C语言打开Oracle数据库关键所在,希望大家可以喜欢,如果喜欢的话可以点赞哦,也可以发表自己的看法。