Execute a database procedure

/*--------------------------------------------------------------------
 * Example Pro*C program to execute a database procedure with known
 * IN OUT arguments.
 *--------------------------------------------------------------------
 */

#include <stdio.h>
#include <sqlca.h>

void sqlerror();

EXEC SQL BEGIN DECLARE SECTION;
char *sqlstmt = "begin :x := upper(:x); end;";
char *connstr = "scott/tiger@ORCL";
char valstr[25];
EXEC SQL END DECLARE SECTION;

void main() {
        EXEC SQL WHENEVER SQLERROR DO sqlerror();
        EXEC SQL WHENEVER SQLWARNING CONTINUE;
        EXEC SQL CONNECT :connstr;

        EXEC SQL PREPARE stmt1 FROM :sqlstmt;
        strcpy(valstr, "Hi world");
        EXEC SQL EXECUTE stmt1 USING :valstr;

        printf("Return value: %s\n", valstr);
        return;
}

void sqlerror() {
        printf("Stop Error:\t%25i\n",sqlca.sqlcode);
        return;
}