【发布时间】:2024-04-19 17:00:02
【问题描述】:
我有一个文本文件,需要在其中执行操作,比如文件有标题,如果有标题,那么它传递给下一个,如果没有,那么操作应该停止。 第二步找到有正确的分隔符,即管道如果文件有正确的分隔符,那么它应该通过并移动下一步,否则失败。 如果上述所有步骤都成功,那么它应该被导出到主表。
文件结构为:
A|B|C|D|E - column
00|1|1|1|1- data
.
。 以此类推。
create table #testdata (
textvalue varchar(max)
)
bulk insert #testdata
from 'D:\test.txt'
--with
--(
--FIELDTERMINATOR = '|'
--)
select *,rowid = row_number() over(order by textvalue desc)
into #test1
from #testdata
--if exists (select 1 from #test1 where #test1.textvalue = @header and #test1.rowid = 1)
--begin
goto nextstep
--end
else
goto exitprocedure
输出应该是这样的:-
select FileType = 'Test',
ReviewType = 'Correct delimiter is expected',
PassFail = 'Success or Fail'
基于上述验证,无论哪个失败,它都应显示上述三个字段的输出。
由于这需要在 T-SQL 中执行。
【问题讨论】:
-
SO 是关于帮助您构建解决方案,而不是为您完成所有工作。当您遇到困难时,请尝试并发布一个具体问题。
-
你需要edit那个细节问题。
-
SO 不是免费的编码服务网站!!!您应该尝试解决您的问题。如果它不起作用,我们会尽力提供帮助。
-
另外,阅读本文以了解如何提问。 *.com/help/how-to-ask
-
我不同意 SSIS 是为此而构建的。如果文件没有固定的格式或者它很脏,你必须求助于 C# 脚本等。SSIS 不能很好地处理不一致的输入数据格式。
标签: sql-server file tsql sql-server-2016