数据库文本导入的问题

zhoanghuaword 2006-12-20 04:49:13
请问各位大侠啊,有SQLSERVER2000有没有可以对文本的数据进行一行一行的导入处理,每行的导入规则可能不一样啊!!有的话请给个例子哦|
...全文
190 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoanghuaword 2006-12-20
  • 打赏
  • 举报
回复
看的不是很明白啊!!
我举个例子啊!!比如1.txt文本里面有以下数据:
第一行:12345678949494
第二行:59049404330303
第三行:09940290293020
导入后台数据库的表中 a table 一共有两个字段
导入规则: 第一行:第一字段取5位 第二个字段取剩下的
第二行:第一字段取3位 第二个字段取剩下的
第二行:第一字段取7位 第二个字段取剩下的
大侠,怎么办?
risman 2006-12-20
  • 打赏
  • 举报
回复
mark
gc_ding 2006-12-20
  • 打赏
  • 举报
回复
下面给出一个简单的例子,假设有一个表Contacts.txt类似下面:
姓名 单位 联系日期
王海 上海有机化学研究所 2002-1-1
罗炙 数字化机床研究院 2004-1-1

导入 Access 应该类似下面表格:
姓名 单位 联系日期
王海 上海有机化学研究所 2002-1-1
罗炙 数字化机床研究院 2004-1-1

那么 Schema.ini 则是类似下面的INI文件:
[Contacts.txt]
ColNameHeader=True
format=Delimited(" ")
MaxScanRows=0
CharacterSet=ANSI
Col1="姓名" Char Width 10
Col2="单位" Char Width 9
Col3="联系日期" Date Width 8

注释如下:
[Contacts.txt] ///文本文件名
ColNameHeader=True ///带有表头
format=Delimited( ) ///空格作为分隔符,如果是分号,请用format=Delimited(;) 来解决
MaxScanRows=0 ///扫描整个文件
CharacterSet=ANSI ///ANSI 字符集
Col1="姓名" Char Width 10 ///字段1
Col2="单位" Char Width 9 ///字段2
Col3="联系日期" Date Width 8 ///字段3
///如果有更多字段可 Col4 .... ColN

注意,Schema.ini 必须和需要导入的文本文件在同一目录。
gc_ding 2006-12-20
  • 打赏
  • 举报
回复
用 Schema.ini 文件

作用:Schema.ini用于提供文本文件中记录的构架信息。
每个 Schema.ini 项都用于指定表的五个特征之一:
1、文本文件名
2、文件格式
3、字段名、字段长度、字段类型
4、字符集
5、特别数据类型转换

1.指定文件名
文件名要用方括号括起来,例如如果要对 Sample.txt 使用数据构架信息文件,
那么它的对应的项应该是
[Sample.txt]

2.指定文件格式
格式说明 表格式 Schema.ini 格式描述
Tab 制表符分隔 文件中的字段用制表符分隔 Format=TabDelimited
CSV 分隔 文件中的字段用逗号来分隔 Format=CSVDelimited
自定义分隔 文件中的字段可以用任何字符来分隔, Format=Delimited(自定义分隔符)
所有的字符都可以用来分隔,包括空格,
但是双引号 ( " ) 除外
- 或者没有分隔符 - Format=Delimited( )
固定宽度 文件中的字段为固定长度

3.指定字段

你可以有两种方法在一个字符分隔的文本文件中指定字段名

1、在文本文件中的第一行包含字段名,并且设置 ColNameHeader 为 True 。
2、用数字编号指定每一列并且指定每一列的名字以及数据类型

你必须用数字编号指定每一列并且指定每一列的名字、数据类型以及长度
(在固定长度分隔的文本文件中需要指定长度)

注意,设定了 ColNameHeader 选项,在 Schema.ini 中 Windows 注册时会忽略
FirstRowHasNames 选项。

你也可以指定字段的数据类型,使用 MaxScanRows 选项用来指定在确定列的
数据类型时要扫描多少行数据。设置 MaxScanRows 为 0 将扫描整个文件。

如果文本文件第一行包含字段名,并且要扫描整个文件,则:
ColNameHeader=True
MaxScanRows=0

接下来的项目用来指定表中的字段,使用列编号(Coln)选项来指定列。
字段长度在“固定分隔文本文件中”是必填项目,在“字符分隔文本文件”中是可选项目。

示例:定义 2 个字段,
CustomerNumber 是长度为 10 的文本字段、
CustomerName 是长度为 30 的文本字段。

Col1=CustomerNumber Text Width 10
Col2=CustomerName Text Width 30

语法如下:
Coln=ColumnName type [Width #]

参数解释如下:
参数 说明
ColumnName 文本,标识字段名,如果包含空格要用双引号括起来
type 数据类型包括:
Microsoft Jet 数据类型:Bit Byte Short Long Currency Single Double DateTime Text Memo

ODBC 数据类型: Char (same as Text) Float (same as Double) Integer (same as Short)
LongChar (same as Memo) Date date format

其中date format 是日期的格式字符串例如:Date YYYY-MM-DD

Width 字符串的长度,后面的数字用来指定字段的长度
(“固定分隔文本文件”为必填,“文字分隔文本文件”为可选)
# 整形数字,标识字段长度

4.指定字符集
CharacterSet 项有两个选择:ANSI | OEM
选择 ANSI 字符集用如下方法:
CharacterSet=ANSI

5.特别数据类型转换:
特别数据类型转换主要是定义比如日期、货币型数据如何转换或者如何显示的
gc_ding 2006-12-20
  • 打赏
  • 举报
回复
可通过配置schema.ini文件来实现

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧