sql - 将未格式化的txt文件导入SQL

标签 sql sql-server-2008 import ssis

我在从文本文件将数据导入 SQL 时遇到问题。不是因为我不知道如何......而是因为为此目的而格式化非常糟糕。以下是我需要使用的文本文件类型的更改示例:


1   VA -    P
2   VB to 1X    P
3   VC to 1Y    P
4   N - P
5   G to 1G,Frame   P
6   Fout to 1G,Frame    P
7   Open Breaker    P
8   1B to 1X    P
9   1C to 1Y    P

Test Status: Pass
Hi-Pot @ 1500V: Pass 
Customer Order:904177-F
Number: G4901626-200
Serial Number: J245F6-2D03856
Catalog #: CBDC37-X5LE30-H40-L630C-4GJ-G31
Operator: TGY
Date:  Aug 01, 2013
Start Time: 04:09:26
Finish Time: 04:09:33

前9行都是具体的测试结果(制表符分隔),下面是标题信息。我的问题是我需要弄清楚:

  1. 如何获取上述数据并将其分解为标准列格式以导入到 SQL 中?

  2. 如何自动执行此操作,以便可以循环遍历整个文件夹结构? -您在上面看到的是分成几个子目录的数百个文件之一。

另请注意, header 信息上方的测试行数因文件而异。不过, header 信息的格式基本相同。这些都是无法重新生成的遗留数据,但需要导入到我们的 SQL 数据库中。

我正在考虑使用带有自定义脚本的 SSIS 项目来导入数据...通过查找第一个空行从底部拼接顶部部分...然后将标题中的数据转换为列格式。 ..合并...然后继续。但我写的 VB 不多,而且我不知道如何解决这个问题。

我正在 SQL Server 2008R2 环境中工作,可以访问 BIDS。

想法?

最佳答案

我首先将数据作为所有字符导入到具有单个字段的表中,每行一个记录。然后,您可以从该表中将每条记录解析为适合每行的字段和字段类型。希望有一种方法可以弄清楚每一行是什么类型的数据,每个文件的顺序是否一致,或者头记录指示后续行的信息。由此,数据可以移动到最终的(解析可能需要多次传递)表,其中数据以可用于您需要的任何格式存储。

关于sql - 将未格式化的txt文件导入SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19777005/

相关文章:

php - 使用 MySQL 和 PHP 计算错误

sql - 对行日期的前几个月值求和

sql-server-2008 - 快速将生产数据库复制到开发环境(SQL Server)

sql-server - 哪种数据类型应该正确地将 JSON 内容存储为字符串?

sql-server-2008 - SQL Server主体 "dbo"不存在,

python - 使用 Django 从其他应用程序导入模型时遇到问题

sql - GROUP BY 用于 SELECT 一列

sql - 插入记录并保留主键值

java - R 文件夹和库的问题

javascript - 摆脱相对路径 react (删除 "../..")