【发布时间】:2017-06-15 07:11:19
【问题描述】:
我有一个每天收到的转储文件,我想知道如何通过 ssis 和 sql server 数据库中的脚本任务加载它。转储的格式如下所述,来自
这些应该只有两个记录行,而在文件中我需要编写一个解析器,它可以实际缓冲数据并存储在列名 A B C D .... AC 中。字母是列名,= 之后的数据是需要存储在这些列中的实际数据 如果有人可以帮助我加载这些数据,我需要帮助。
<BEGIN
a=103216789021;
b=125230049;
c=TS1;
d=NON;
e=2;
d=TS1;
f=BC;
g=MIS;
H=100;
I=61005;
J=YES;
K=MC;
L=CW-ALL;
M=0;
N=CLIP;
O=ON;
P=1;
Q=90;
R=90;
S=90;
T=REE;
U=ALL;
V=0;
W=1382326697;
X=1382413166;
Y=01D81E170EE83C06;
Z=YES;
AB=NO;
AC=NO;
<END
<BEGIN
a=103216789021;
b=125230049;
c=TS1;
d=NON;
e=2;
d=TS1;
f=BC;
g=MIS;
H=100;
I=61005;
J=YES;
K=MC;
L=CW-ALL;
M=0;
N=CLIP;
O=ON;
P=1;
Q=90;
R=90;
S=90;
T=REE;
U=ALL;
V=0;
W=1382326697;
X=1382413166;
Y=01D81E170EE83C06;
Z=YES;
AB=NO;
AC=NO;
<END
【问题讨论】:
-
到目前为止你尝试过什么?脚本任务很容易为您处理。
-
我对编程不太适应,问题是我想编写 vb.net 文件解析代码,但我无法实现它的逻辑。对不起,我为此感到羞耻,因为我不知道。 :(
-
不必害臊。我们都必须从某个地方开始 :) 尝试将事情分解成可管理的块。您的数据实际上看起来很容易使用。您总是(似乎)有预定义数量的列,并且它们的名称在文件中。它们后面总是跟一个 '=' 符号,并且在值之后,有一个很好的分号。尝试通过设置一个包含数据流和其中的脚本组件(转换)的 SSIS 任务开始。将其设置为具有 1 个输出列 (A),并查看您是否可以编写代码以将“A”的值从缓冲区输入中提取出来:)
-
人!您不必编写所有代码!这只是一个完全正常的分隔文件,除了列分隔符是回车符和行分隔符是
<END -
我从没想过会这样,但现在我的包有了一个甜蜜的新花样......谢谢!!!
标签: sql sql-server ssis etl