用C++产生QL*Loader各类文件

1.前言

目前,我国许多单位MIS系统建立在微机PC或基于NovellNetWare局域网环境中,数据库和开发工具采用Foxpro2.5 for DOS或Foxpro 2.5 for Windows,以dbf文件为数据组织管理手段,随着系统的不断扩大和实际应用的需要,不少单位已开始采用大型数据库Oracle。在MIS从Foxpro升级到大型数据库Oracle过程中,将Foxpro的dbf文件通过Oracle工具SQL*Loader加载到Oracle数据库中是一项非常重要的工作。一般用SQL*Loader加载的具体实施步骤是:

* 运行Foxpro,打开数据库,将dbf文件拷贝为SDF格式的文本文件

* 根据dbf文件结构,产生建立Oracle表(CREATETABLE)的SQL语句

* 登录Oracle,运行产生Oracle表(CREATETABLE)的SQL语句

* 根据dbf文件结构,产生SQL*Loader的控制文件

* 运行SQL*Loader,加载数据

用手工方法产生CREATETABLE的SQL语句,特别是产生SQL*Loader控制文件时,POSITION起始、结束位置经常弄错,当需要加载大量的数据时,

不但烦琐,而且效率比较低。我们在实践中利用BorlandC++5.0编制了一个C++实用程序load.cpp,自动产生SQL*Loader的数据文件、控制文件和产

生CREATETABLE的SQL语句。运用load,我们只需:

* load<数据库名>

* 登录Oracle,运行产生Oracle表(CREATETABLE)的SQL语句

* 运行SQL*Loader,加载数据

在实践中,我们通过这种方法,在实现从Foxpro到OracleforDigitalUNIX+中文Windows95的client/server平台的数据加载过程中提高了效率。

2.Foxpro中dbf文件结构

dbf文件由文件头和文件记录组成,其中文件头又由数据库说明和字段说明组成。数据库说明由32个字节组成,各字节含义如下:

字节  含义  

0   数据库文件标志有无备注型字段(03H无)

1-3  最后一次修改日期

4-7  文件记录数

8-9  文件头长度

10-11 记录长度

12-31 未用

字段说明由若干个32字节组成,每32字节说明一个字段,各字节含义如下:

字节  含义

0-10  字段名

11   字段类型

12-15  该字段在文件首记录中的地址

16   字段长度

17   小数位数

18-31  未用

文件记录以ASCII形式存储,每条记录以空格(20H)开头,该空格用来作删除标志用。

【注】:

* 不考虑完整性约束,同时对于TABLESPACE及STORAGE存储参数取缺省值。

* 对于数字型字段,n表示数字的宽度,在Foxpro中包含小数点位置,而在Oracle中不包含。

* 对于Foxprological型字段类型,由于Oracle中没有相应的逻辑型变量,故将其转换为字符类型。

* 暂且不考虑memo、general、picture字段的转换。

时间: 2024-12-30 04:25:18

用C++产生QL*Loader各类文件的相关文章

atool 0.38.0发布 管理各类文件档案的脚本

atool是一个负责管理各类文件档案(tar,tar.gzip,zip等)的脚本.主命令为aunpack,从存档中提取文件.它克服了不检查文件是否是在一个子目录中或在归档文件的顶部目录位于解压缩文件归档的问题,造成散落在其它地方的所有文件,解压到一个新的目录.在存档中,如果只有一个单一的文件,该文件被移动到原来的目录.它还可以防止错误覆盖本地文件.使用其他命令建立档案,列表文件档案,解压缩文件到标准输出. atool 0.38.0该版式本一些次要的错误被修正. 下载地址:http://savan

各类文件怎么打开及文件类型详解

今天我们来讲讲"各种格式的文件打开方式及文件类型详明"的话题,本人从事电脑有10几个年头了,从早期的286电脑到现在的6核电脑,从以前的 DOS系统到现在的Windows 7可以说都经历过,在这么多年从事电脑期间有很多朋友常常会问一些"这个是什么啊,那个是干什么文件啊"之类的问题,也就是我们常讲的文件格式,专业点讲就是文件后缀名(DOS环境叫扩展名),文件后缀名是对文件格式的一种标志,一般通过文件后缀名来区分文件格式,如果你熟悉的话一定会知道这种文件是用来做什么的,

asp在IE浏览器中下载服务端上的各类文件的实现方法_应用技巧

即直接提示用户下载而不是由浏览器打开某些文件.注意,下面的代码拷贝到ASP文件中后,不要再添加一些非ASP代码在页面中:如HTML和javascript客户端的代码.  复制代码 代码如下: <% '-------------------------------------------- Response.Buffer = True Dim strFilePath, strFileSize, strFileName Const adTypeBinary = 1 strFilePath = "

asp在IE浏览器中下载服务端上的各类文件的实现方法

即直接提示用户下载而不是由浏览器打开某些文件.注意,下面的代码拷贝到ASP文件中后,不要再添加一些非ASP代码在页面中:如HTML和javascript客户端的代码.  复制代码 代码如下: <% '-------------------------------------------- Response.Buffer = True Dim strFilePath, strFileSize, strFileName Const adTypeBinary = 1 strFilePath = "

atool 0.39.0发布 管理各类文件档案的脚本

atool 是一个用于管理各种类型文件档案(tar, tar.gzip, zip等)的脚本.其主命令是aunpack,能够从存档中提取文件.它能够在无需检查文件是否位于一个子目录或归档文件顶部目录,就可以从归档中解压文件,散落在其它地方的所有文件,解压到一个新的目录.在存档中,如果只有一个单一的文件,则该文件被移动到原来的目录.它还可以防止错误覆盖本地文件,使用其他命令建立档案,列表文件档案,解压缩文件到标准输出. atool 0.39.0该版本增加了支持plzip,lbzip2 和 pigz.

Oracle SQL*Loader详解(3) 控制文件

控制文件是SQL*Loader里最重要的文件,它是一个文本文件,用来定义数据文件的位置.数据的格 式.以及配置数据加载过程的行为,在sqlldr中以control参数指定控制文件. 在控制文件里配置命令行参数 (OPTIONS) 在上一篇中我们讲过命令行参数可以配置在三个地方,其中一个就是可以使用控制文件的OPTIONS字 句(这也是最常用的方式),如下所示: OPTIONS (DIRECT=true, SILENT=(ERRORS, FEEDBACK) ) 更多的命令行参数,请见上一篇. 配置

SQL*Loader使用方法

--===================== -- SQL*Loader使用方法 --=====================   一.SQL*Loader的体系结构     SQL*Loader由一个输入控制文件来控制整个装载的相关描述信息,一个或多个数据文件作为原始数据,其详细组成结构包括         Input Datafiles      -->装载到数据库的原始数据文件         Loader Control file  -->提供给QL*Loader寻找及翻译数据的相

使用 Sql*Loader 向 Oracle 导入数据

oracle|导入数据 使用Oracle的sqlldr工具来将SDSS.CSV文件中的数据导入数据库. SDSS.CSV 放置于 E:\ 内容如下:         2.3757291096910399E-4,-8.9490277843631194,20.302597,        0.00023851549291556,-0.88450365314434698,20.098101,        2.5168890447969299E-4,7.7169029946908094E-2,18.7

流技术在用VB存取工程资料文件中的应用

一.引言 对于工程项目管理来说,工程文件资料管理是其中一项重要的工作,其保密性也是至关重要的一项内容.好的资料管理能显著提高工程建设过程中资料审查的工作效率,电子文件能否很好的得到存取也是保密所需要考虑的内容. 二.实现思路 为能更好的做好文件资料的管理,采用以下几点原则: 1.考虑各工作站大多都安装了office2000以上版本的软件,采用ACCESS数据库来存取文件. 2.采用流对象保存和显示各类文件,同一类的内容可以作为一个压缩文件保存到数据库的一条记录里,在数据库的表里采用长二进制的形式