zoukankan      html  css  js  c++  java
  • ETL应用:使用Pro*C实现文件抽取的方法

    /*******************************************
    *****  函数功能 :
    *****      抽取数据库记录
    *****
    ********************************************/
    int extract_data(char *efilename,const char *sqlname)
    {
      FILE  *fpWrite;
      EXEC SQL BEGIN DECLARE SECTION;
         varchar     v_str_sql[3000+1];    /*SQL语句  */
         varchar     vc_expcol[MAXLEN];
      EXEC SQL END DECLARE SECTION;
      /**/
      strcpy((char *)v_str_sql.arr,sqlname);
      v_str_sql.len=strlen((char*)v_str_sql.arr);
    #ifdef   DEBUG
      printf("SQL语句%s.
    ",v_str_sql.arr);
    #endif
      EXEC SQL WHENEVER SQLERROR GOTO prepare_exp_error;
            if ((fpWrite = fopen(efilename, "w+")) == NULL)
       {
                fprintf(stderr,"Cannot open data file %s
    ", efilename);
                      exit(1);
       }
       /*声明游标处理方式*/
          EXEC SQL PREPARE sqlstmt FROM :v_str_sql;
          EXEC SQL DECLARE extract_cur CURSOR FOR sqlstmt;
          EXEC SQL OPEN extract_cur;
       for(;;)
      {
              /*提取数据*/
          EXEC SQL FETCH extract_cur INTO :vc_expcol ;
          if (sqlca.sqlcode == 1403)
                       {
                           fprintf(stderr,"数据已经抽取完成或是没有符合条件的数据!
    ");
                           break;
                        }
                       vc_expcol.arr[vc_expcol.len] = '';
                       /*将输出数据记录到文件中*/
           fprintf(fpWrite,"%s
    ",vc_expcol.arr );
       }
       /*关闭文件*/
       fclose(fpWrite);
       /*关闭游标*/
       EXEC SQL CLOSE extract_cur;
       return SUCCESS;
    prepare_exp_error:
             /*记录错误信息*/
       fprintf(stderr,"
    %70s
    ",sqlca.sqlerrm.sqlerrmc);
       fprintf(stderr,"数据库操作错误!退出!");
             return FAILUER;
    }
  • 相关阅读:
    Object的公用方法
    Java的特点
    Set集合
    Java语言的三大特性
    List集合
    Collection类
    HashSet
    Codeforces1141F2 Same Sum Blocks (Hard)
    Codeforce1176F Destroy it!
    jzoj 5348. 【NOIP2017提高A组模拟9.5】心灵治愈
  • 原文地址:https://www.cnblogs.com/tychyg/p/4868561.html
Copyright © 2011-2022 走看看