将sql server表导出为固定长度的文本文件

时间:2011-12-15 10:20:14

标签: sql-server ssis

我有一个包含2-25个字段的sql server 2008表。我必须阅读此表并创建一个由连续的832字符组成的固定长度的文本文件。

在阅读表格时,不同字段的长度是固定的。例如,患者姓名应从pos 1开始,其长度为30个字符,然后从位置32开始,需要显示医疗记录编号,其长度为13个字符。

请帮我写一下这个查询?还是可以通过ssis包完成任何事情?

1 个答案:

答案 0 :(得分:0)

您可以将字段转换为char数据类型,然后将其与bcp queryout

一起使用 例如,

采取此查询:

select convert(char(30), [patient-name])
     , convert(char(13), [medical record nr])
     , convert(char(10), value3)
     , ...
from myTable

您可以在bcp语句中使用它,如下所示

bcp "select convert(char(10), field1), convert(char(10), field2), convert(char(10), value1)  from myDB..myTable" queryout c:\myfile.txt /SmyServer /T /c 

请注意,您需要完全限定表名