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;
    }
  • 相关阅读:
    springMVC中@RequestParam和@RequestBody的作用
    java 中Excel的导入导出
    数据库字段名称与实体类属性不一致的处理措施
    linux下解压命令大全
    linux 下 cat
    mysqli
    解析php mysql 事务处理回滚操作(附实例)
    css 样式(checkbox开关、css按钮)
    cetons 怎么强制卸载 PHP
    yhdsir@function:php
  • 原文地址:https://www.cnblogs.com/tychyg/p/4868561.html
Copyright © 2011-2022 走看看