欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

嵌入sql c编程,该如何处理

更新时间: 2014-01-05 02:23:51 责任编辑: Author_N1

 

嵌入SQL C编程
   有一些源文件是文本格式的,每个字段为定长,无分隔符。想要把这些文件导入db2数据库表中。

有没有什么快捷的方法。

   我现在的想法是:
      1. 写一个通用的sqc程序,在一个配置文件中定义好要导入的表名、字段数、每个字段的长度。如
         tblnm1 
         field1_len
         field2_len
         ....
      2. 执行程序时,根据配置文件中的字段数、每个字段长度生成sql语句,插入相应表中

      3. 因为每个表的字段数不一定,假如每个字段最长不超过30、最大200个字段

想定义如下
    EXEC SQL BEGIN DECLARE SECTION;
          char hsDbsNm[20+1];

           long iFldSeq[200];
           char sFldInf[200][30];
    EXEC SQL END   DECLARE SECTION;

但发现整形数组、字符型二维数组好像均不支持

环境 AIX  db2

========================
或是谁有更好的,效率更高的方法。

写成shell也可以,但最好是通用的。

--参考方法--
http://publib.boulder.ibm.com/infocenter/db2luw/v9
关于嵌入式编程 ibm官网信息中心有些样本程序和例子 你看看相关信息把
--参考方法--
用awk把文件加上分隔符,然后用import或者load来处理不行吗?
--参考方法--
既然要做一个那么详细的配置文件,还不如直接把表的信息写成结构体,然后程序中读文件判断是写那个表的数据,然后把文件中的值赋予结构体中,然后insert吧。
我只有这两下子了。。。。
--参考方法--
引用:
既然要做一个那么详细的配置文件,还不如直接把表的信息写成结构体,然后程序中读文件判断是写那个表的数据,然后把文件中的值赋予结构体中,然后insert吧。
我只有这两下子了。。。。


db2load里asc表示固定长度数据,del表示有分隔数据,asc数据可以用method l,需要指定每列的开始和结束位置。

可以根据配置文件(包含表名,字段数,字段长度),另外可以通过数据字典获取表里所有列,
通过编写程序生成一个命令文件,格式如下:
LOAD FROM filename OF ASC METHOD L (col1_start col1_end1,col2_start col2_end,...) INSERT INTO tabname (col1,col2,...);
然后db2 -tvf执行这个命令文件即可
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:23:51
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9323/
本文WWW.DOC100.NET DOC100.NET版权所有。