#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sqlda.h>
#include<sqlcpr.h>
#include<sqlca.h>EXEC SQL BEGIN DECLARE SECTION;
varchar usr[20];
varchar pass[20];
varchar serv[20];
EXEC SQL END DECLARE SECTION;int connect() {  
EXEC SQL WHENEVER SQLERROR GOTO error_msg;  EXEC SQL CONNECT :username IDENTIFIED BY :password USING :serv; 
printf("Connect successed!\n"); 
return 0; 
error_msg: 
printf("Connect failed\n"); 
return -1;
}void sql_error(char *msg)
{
    char err_msg[128];
    size_t buf_len, msg_len;
    EXEC SQL WHENEVER SQLERROR CONTINUE;
    printf("\n%s\n", msg);
    buf_len = sizeof (err_msg);
    sqlglm(err_msg, &buf_len, &msg_len);
    printf("%.*s\n", msg_len, err_msg);
    EXEC SQL ROLLBACK RELEASE;
    exit(-1);
}int main (){
        EXEC SQL BEGIN DECLARE SECTION;
          char name[50];
          int id,score;
        EXEC SQL END DECLARE SECTION;        strcpy(usr.arr,"qgtg");
        usr.len=(unsigned short)strlen((char *)usr.arr);        strcpy(pass.arr,"qgtg");
pass.len=(unsigned short)strlen((char *)pass.arr);        strcpy(serv.arr,"6.0.55.10");
        serv.len=(unsigned short)strlen((char *)serv.arr);
if (connect()!=0) 
exit(-1);
        EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n"); printf("\n/*-------------------SELECT--------------------*/\n");
printf("please input studentid:");
scanf("%d",&id);
EXEC SQL SELECT id,name,score INTO :id,:name,:score FROM student WHERE id=:id;
printf("id=%d  name=%s  score=%d\n",id,name,score);
        EXEC SQL COMMIT WORK RELEASE;
exit(0);
}Oracle