OCIHandleAlloc((dvoid *)envhpp, (dvoid **)&errhpp, OCI_HTYPE_ERROR, (size_t)0, (dvoid **)0);
   char sql[255];
   sprintf(sql,"%s","insert into scott.emp(empno) values(:9002)");
   if (OCIStmtPrepare(stmthpp, errhpp, (text *)sql, (ub4)strlen(sql), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT) != OCI_SUCCESS)
   {
              cout << "Create prepare error!" << sql << endl;
              exit(1);
    }
       cout << "Create prepare success!" << endl;
   int i;
   OCIBind *hbind1 = NULL;
  // OCIBind *hbind2 = NULL;
    errhpp=NULL;
   i=OCIHandleAlloc((dvoid *)envhpp,(dvoid **)&errhpp,OCI_HTYPE_ERROR,(size_t)0, (dvoid **)0);
   
   
   ub2 stmt_type;
   i=OCIBindByPos(stmthpp,&hbind1,errhpp,1,(dvoid *)&gather.id ,  sizeof(int),SQLT_INT,NULL,NULL,NULL,0,NULL,OCI_DEFAULT);
  // i=OCIBindByPos(stmthpp,&hbind2,errhpp,2,(dvoid *)&gather.name,sizeof(gather.name),SQLT_CHR,NULL,NULL,NULL,0,NULL,OCI_DEFAULT);
 //OCIDefineByPos(stmthpp, &bhp1, errhpp, 1, (dvoid *)&gather. id, sizeof(int), SQLT_INT,NULL, &datalen, NULL, OCI_DEFAULT);
  i=OCIAttrGet ((dvoid *)stmthpp, (ub4)OCI_HTYPE_STMT, (dvoid *)&stmt_type, (ub4 *)0, (ub4)OCI_ATTR_STMT_TYPE, errhpp);
   // 执行 SQL 语句
  i=OCIStmtExecute(svcctx, stmthpp, errhpp, (ub4)(stmt_type==OCI_STMT_SELECT?1:0), (ub4)0, (OCISnapshot *)NULL, (OCISnapshot *)NULL, OCI_DEFAULT);
  if( ( i)!=OCI_SUCCESS)
  {
              int errcno;
              char errbuf[512]={'\0'};
              sb4 errcode;
            // 返回一个错误指针和一个 OCI 错误代码
          OCIErrorGet((dvoid *)errhpp, (ub4)1, (text *)NULL, &errcode, (ub1 *)errbuf, (ub4)sizeof(errbuf), OCI_HTYPE_ERROR);
              errcno = errcode;
              cout << "Oracle execute failed:" << errbuf << endl;
              OCIHandleFree((dvoid *)envhpp,OCI_HTYPE_ENV);
              OCIHandleFree((dvoid *)svcctx,OCI_HTYPE_SVCCTX);
              //OCIHandleFree((dvoid *)stmthpp,OCI_HTYPE_STMT);
  OCIHandleFree((dvoid *)errhpp,OCI_HTYPE_ERROR);
              exit(1);
   }
  cout << "Oracle execute success!"<< endl;
   
   OCILogoff(svcctx, errhpp);
   OCIServerDetach(srvhpp, errhpp,  OCI_DEFAULT);
   OCIHandleFree((dvoid *)  stmthpp, OCI_HTYPE_STMT);
   OCIHandleFree((dvoid *)  svcctx,  OCI_HTYPE_SVCCTX);
   OCIHandleFree((dvoid *)  srvhpp, OCI_HTYPE_SERVER);  
   OCIHandleFree((dvoid *)  errhpp,  OCI_HTYPE_ERROR);
   return 0;这是我写的关于数据库执行sql语句的程序,可编译能通过,就是跑的时候出现问题说是ora-24333  零迭代器的问题,请牛人榜我看一看程序,到底是哪里有问题,或者是还有什么地方没写完整