我有一段proc程序其变量定义如下:
#define MAX_NUM 10000   
...
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR userid[20];
      VARCHAR password[20];
      VARCHAR db_name[20];
      int  max_fetch = 10000;
      int  ins_num=10000;
      int curr_rows = 0;
     
char  ORG_NO[MAX_NUM][9+1];
char DEPT_CODE[MAX_NUM][2+1];
char  PRODUCT_CODE[MAX_NUM][11+1];
char  CUS_NO[MAX_NUM][19+1];
char  CUU_CODE[MAX_NUM][3+1];
double  BOK_BAL[MAX_NUM];
double  DR_ACINT[MAX_NUM];
double  CR_ACINT[MAX_NUM];
double  DR_ACCM[MAX_NUM];
double TODAY_DRACCM[MAX_NUM];
double CR_ACCM[MAX_NUM];
double TODAY_CRACCM[MAX_NUM];
double LINTDT[MAX_NUM];
char DR_RATE_CODE[MAX_NUM][3+1];
char CR_RATE_CODE[MAX_NUM][3+1];
double DIF_BAL[MAX_NUM];
double CIF_BAL[MAX_NUM];
double DR_RATE[MAX_NUM];
double CR_RATE[MAX_NUM];
double DRCR_CHG_DATE[MAX_NUM];
char ACTSTS[MAX_NUM][1+1];
char RECSTS[MAX_NUM][1+1];
double OPEN_DATE[MAX_NUM];
double CLS_DATE[MAX_NUM];
char ACTGLC[MAX_NUM][4+1];
char  CURR_APCODE[MAX_NUM][20+1];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE SQLCA;         strcpy(userid.arr,"jstmp");
userid.len=strlen(userid.arr);
strcpy(password.arr,"123456");
password.len=strlen(password.arr);
strcpy(db_name.arr,"SZORACLE");
db_name.len=strlen(db_name.arr);
EXEC SQL CONNECT:userid IDENTIFIED BY:password USING :db_name;
printf("connect to oracle!%d\n",SQLCODE);
...程序执行到联接数据库时居然没任何反应,SQLCODE的值也没打印出来 
但是我把变量定义的char  CURR_APCODE[MAX_NUM][20+1];
改成char  CURR_APCODE[100][20+1];以后,一切正常,我在makefile中说明了MAX_NUM的,请大虾们指点一下,多谢!