如何将平面文件列分隔符设置为不可打印的字符
How to set the flat file column delimiter to an unprintable character
我需要创建一个列分隔符为 CTRL-A 的 CSV 文件。平面文件目标可能吗?如果是,语法是什么?如果不是,是否有缺少自定义目的地的解决方案?
我还没有完全测试过这个,但它似乎可行。
创建带有标题的模板平面文件。我使用 Linqpad 使用 unicode 字符串 (\u0001) 创建 Ctrl-A 字符。您也可以使用 \x01 到达那里的 ascii 路由(相同的字符,如果您需要在代码中使用它,只需指出这一点)。这是我的平面文件中的内容。
ColumnA□ColumnB
创建一个平面文件目标,并创建一个新的平面文件连接。 Select 分隔为类型。
- 浏览到您的平面文件模板,选中 Unicode 框(如果是 unicode),如果数据应包含 headers,也选中该框。
- 从模板中复制 Ctrl-A 字符并将其粘贴到列分隔符框中。然后单击刷新按钮。
您现在应该可以使用分隔列了。如果您需要在代码中手动重新创建该字符,您始终可以使用 \x01 或 \u0001。
我对 sorrell 采取了类似的方法,但我的结果略有不同:
在SSMS中,创建角色并复制输出。请注意,如果您将它粘贴到任何地方,它看起来就像什么都没有。
SELECT char(1)
编辑:
确保从结果 window 中复制此查询的结果。您可以通过粘贴到记事本中来确认您拥有它 - 它会显示光标移动一 space。或者在记事本++中,它会显示一个突出显示的 "SOH"
这里是我找到要使用的小数点的地方:http://www.unix-manuals.com/refs/misc/ascii-table.html
- 将该值粘贴到平面文件管理器的列定界符中:
这是记事本中的输出结果:
更有趣的是,这就是它在 Notepad++ 中的样子(匹配标题开始文本 - 来自 ASCII 的 SOH table 我在上面发布了一个 link:
我需要创建一个列分隔符为 CTRL-A 的 CSV 文件。平面文件目标可能吗?如果是,语法是什么?如果不是,是否有缺少自定义目的地的解决方案?
我还没有完全测试过这个,但它似乎可行。
创建带有标题的模板平面文件。我使用 Linqpad 使用 unicode 字符串 (\u0001) 创建 Ctrl-A 字符。您也可以使用 \x01 到达那里的 ascii 路由(相同的字符,如果您需要在代码中使用它,只需指出这一点)。这是我的平面文件中的内容。
ColumnA□ColumnB
创建一个平面文件目标,并创建一个新的平面文件连接。 Select 分隔为类型。
- 浏览到您的平面文件模板,选中 Unicode 框(如果是 unicode),如果数据应包含 headers,也选中该框。
- 从模板中复制 Ctrl-A 字符并将其粘贴到列分隔符框中。然后单击刷新按钮。
您现在应该可以使用分隔列了。如果您需要在代码中手动重新创建该字符,您始终可以使用 \x01 或 \u0001。
我对 sorrell 采取了类似的方法,但我的结果略有不同:
在SSMS中,创建角色并复制输出。请注意,如果您将它粘贴到任何地方,它看起来就像什么都没有。
SELECT char(1)
编辑:
确保从结果 window 中复制此查询的结果。您可以通过粘贴到记事本中来确认您拥有它 - 它会显示光标移动一 space。或者在记事本++中,它会显示一个突出显示的 "SOH"
这里是我找到要使用的小数点的地方:http://www.unix-manuals.com/refs/misc/ascii-table.html
- 将该值粘贴到平面文件管理器的列定界符中:
这是记事本中的输出结果:
更有趣的是,这就是它在 Notepad++ 中的样子(匹配标题开始文本 - 来自 ASCII 的 SOH table 我在上面发布了一个 link: