执行的语句
char *sql_stmt =
"INSERT INTO emp (empno) VALUES (:e)";   //empno是int型
char empno[ARRAY_SIZE][4];
array_size = ARRAY_SIZE;赋值:binda->V[0] = (char *) empno; 
    binda->L[0] = (long) 4; 
    binda->T[0] = 1; 
    binda->I[0] = (short *)0;
 
/* Initialize the data buffers. */ 
    strcpy(&empno[0] [0], "100"); 
empno[0][3] = -51;
    strcpy(&empno[1] [0], "100");   
empno[1][3] = -51;
执行:
 EXEC SQL FOR :array_size 
    EXECUTE stmt USING DESCRIPTOR binda;使用这种方法可以insert两条记录到 emp但是
如果empno[0][3] = -51; 改为 empno[0][3] = '\0';执行则会报错  ORA-01722: 无效数字还有如果这样定义:
char empno[ARRAY_SIZE][5];
binda->L[0] = (long) 5;无论empno[0][3] 赋什么值 都会报错  ORA-01722: 无效数字原因可能是oracle判断字符结束不是使用 '\0',但有不知道是什么
那位高手遇到过这种问题,请指教.