C语言连接oracle实例

使用C语言连接oracle数据库通过proc编程连接

test.pc实现的功能是在emp表中查找数据,通过用户输入emp_id,得到对应的emp_name。
test.pc文件内容如下:

#include 
#include 
#include 

EXEC SQL INCLUDE SQLCA;

int main()
{
        EXEC SQL BEGIN DECLARE SECTION;
        //获取数据库服务名serv可以执行sql命令 select global_name from global_name 或者 select instance_name from v$instance
        VARCHAR usr[20],pass[20],serv[20];//usr用户名,pass密码,serv数据库服务名
        char emp_name[20];
        int emp_id;
        EXEC SQL END DECLARE SECTION;

        strcpy(usr.arr,"test01");
        usr.len=(unsigned short)strlen((char *)usr.arr);
        strcpy(pass.arr,"111111");
        pass.len=(unsigned short)strlen((char *)pass.arr);
        strcpy(serv.arr,"orcl");
        serv.len=(unsigned short)strlen((char *)serv.arr);

        EXEC SQL CONNECT :usr IDENTIFIED BY :pass USING :serv;

        //判断是否连接到数据库
        if(sqlca.sqlcode)
        {
                printf("ORA-ERROR: sqlca.sqlcode=%d\n",sqlca.sqlcode);
                exit(0);
        }

        printf("Connect!\n");

        printf("please input id:");
        scanf("%d",&emp_id);

        //查询语句
        EXEC SQL SELECT emp_id , emp_name into :emp_id,:emp_name from emp where emp_id=:emp_id;

        printf("Name=%s\n", emp_name);

        EXEC SQL COMMIT WORK RELEASE;

        printf("Disconnect!\n");

        return 0;
}

执行:
proc test.pc
生成test.c文件
gcc -o test test.c -lclntsh

生成结果:

你可能感兴趣的:(数据库)