/*===========================================================================* pro*c编译方法:* 预编译 proc test.pc* 编译 gcc -o test test.c $ORACLE_HOME/lib/libclntsh.so* 作者 NinGoo* 时间 2005-6-14*============================================================================*/#include <stdio.h>EXEC SQL INCLUDE 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[10]; int empno; EXEC SQL END DECLARE SECTION; //声明C变量 int i=0; //变量赋值 strcpy(user.arr,"NinGoo"); user.len=(unsigned short)strlen((char *)user.arr); strcpy(pass.arr,"password"); pass.len=(unsigned short)strlen((char *)pass.arr); strcpy(tnsname.arr,"dbname"); 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 empno,ename from scott.emp; 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;}