ETL应用:使用Pro*C实现文件抽取的方法
/*******************************************
***** 函数功能 :
***** 抽取数据库记录
*****
********************************************/
int extract_data(char *efilename,const char *sqlname)
{
FILE *fpWrite;
EXEC SQL BEGIN DECLARE SECTION;
varchar v_str_sql[+]; /*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.\n",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\n", efilename);
exit();
}
/*声明游标处理方式*/
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 == )
{
fprintf(stderr,"数据已经抽取完成或是没有符合条件的数据!\n");
break;
}
vc_expcol.arr[vc_expcol.len] = '\0';
/*将输出数据记录到文件中*/
fprintf(fpWrite,"%s\n",vc_expcol.arr );
}
/*关闭文件*/
fclose(fpWrite);
/*关闭游标*/
EXEC SQL CLOSE extract_cur;
return SUCCESS;
prepare_exp_error:
/*记录错误信息*/
fprintf(stderr,"\n%70s\n",sqlca.sqlerrm.sqlerrmc);
fprintf(stderr,"数据库操作错误!退出!");
return FAILUER;
}
ETL应用:使用Pro*C实现文件抽取的方法的更多相关文章
- [转]Oracle 10g及pro*c相关问题及解决方法(转)
Oracle 10g及pro*c相关问题及解决方法 2008年08月21日 星期四 上午 11:21 最近一直在进行ORACLE 10g和PRO*C的学习. 其中遇到了不少的问题: 现列于此,已备他用 ...
- linux几种快速清空文件内容的方法
linux几种快速清空文件内容的方法 几种快速清空文件内容的方法: $ : > filename #其中的 : 是一个占位符, 不产生任何输出. $ > filename $ echo & ...
- 在.net中读写config文件的各种方法
阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...
- Linux下对比两个文件夹的方法
最近拿到一份源代码,要命的是这份源代码是浅克隆模式的git包,所以无法完整显示里面的修改的内容. 今天花了一点点时间,找了一个在Linux对比两个文件夹的方法. 其实方法很简单,用meld 去对比两个 ...
- zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法
转载自:http://blog.csdn.net/wide288/article/details/21622183 zend studio中ctrl+鼠标左键无法转到类或函数定义文件的解决方法: ze ...
- Java调用第三方dll文件的使用方法 System.load()或System.loadLibrary()
Java调用第三方dll文件的使用方法 public class OtherAdapter { static { //System.loadLibrary("Connector") ...
- 使用AS编译jni文件无法编译出arm64-v8a,x86_64和mips64平台的.so文件的解决方法
我用的插件版本是:classpath 'com.android.tools.build:gradle-experimental:0.4.0',AS集成和使用ndk编译项目参考官方demo:https: ...
- Oracle表空间数据文件移动的方法
最近遇到这样的一个问题,Oracle存放表空间文件的盘符 空间不够了,必须把部分表空间迁移出去, [转]http://www.jb51.net/article/77026.htm 实现把用户表空间中的 ...
- 提取c#代码文件中的方法块
此方法是取C#文件里面的方法块,并删除缩进符,感觉写得还是比较容易懂的,所以收藏下,以便将来用到. private static string GetCodeBlock(string allCo ...
随机推荐
- NIPS2016 best paper: Value Iteration Networks 解析
论文介绍ppt:https://pan.baidu.com/s/1gfDURyb Tamar, Aviv, et al. "Value iteration networks." A ...
- Mybatis 逆向工程 自动生成代码
Mybatis 可以通过一定的代码,自动生成包括mapper.xml.mapper.java.po等文件: 一.环境准备: 用到的JAR包如下: 文件只有两个:GenMain.java和generat ...
- day2 python基础 while 循环补充
一.上节内容回顾 二.pycharm安装. 安装好以后激活方法:直接打开pycharm,选License server激活,输入:http://idea.imsxm.com 三.补充知识:如果字符串本 ...
- 使用jsx语法环境搭建
1.安装nodejs.nodejs安装后会自带npm,可以用 npm -v 进行查看版本.使用 npm install npm -g 更新文档. 2.创建自己项目,在你的项目路径下执行npm init ...
- 【BZOJ2707】[SDOI2012]走迷宫 Tarjan+拓扑排序+高斯消元+期望
[BZOJ2707][SDOI2012]走迷宫 Description Morenan被困在了一个迷宫里.迷宫可以视为N个点M条边的有向图,其中Morenan处于起点S,迷宫的终点设为T.可惜的是,M ...
- 【BZOJ2762】[JLOI2011]不等式组 树状数组
[BZOJ2762][JLOI2011]不等式组 Description 旺汪与旺喵最近在做一些不等式的练习.这些不等式都是形如ax+b>c 的一元不等式.当然,解这些不等式对旺汪来说太简单了, ...
- POJ 3026 Borg Maze【BFS+最小生成树】
链接: http://poj.org/problem?id=3026 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...
- 九度OJ 1359:大魏树遍历 (树)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:299 解决:29 题目描述: 大魏是JOBDU技术组里最喜欢折腾的一个了,单反.骑车.改九度页面,当然还有YY prado.我们姑且先把这些 ...
- [NOIP2018PJ]对称二叉树
[NOIP2018PJ]对称二叉树 这个题正常人看到题面难道不是哈希? 乱写了个树哈希... #include<bits/stdc++.h> using namespace std; co ...
- RabbitMQ_消息队列基本使用_1
什么叫消息队列 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象. 消息队列(Message Queue)是一种应用间的通信方式,消 ...