如何将不可打印的字符传递给 BCP 的 field/row 终止符参数?
How do I pass non-printable characters to BCP's field/row terminator parameters?
我有一个制表符分隔的文件,我想导入到 SQL Server 2012;行终止符是 CRLF。以下是我在 PowerShell 中的 BCP 语句:
bcp database.dbo.table IN C:\filePath.tsv -SserverName -UuserName -Ppassword -c -t\t -r\n
其中报告
Unexpected EOF encountered
错误。
我一辈子都弄不明白为什么这行不通。多一个眼睛就好了。
编辑:
经过审查,我认为问题出在 -r\n...CRLF 的元字符是什么?
十六进制编码:
bcp database.dbo.table IN C:\filePath.tsv -SserverName -UuserName -Ppassword -c -t0x9 -r0xa
您可以使用多个字符,方法是将每个字符编码为十六进制并将它们附加在一起。例如,我们使用记录分隔符、回车return和换行符来分隔每一行,因此我们将0x1e0d0a
作为-r
参数的值传递。
我使用 ASCII Table 来快速查找。
我有一个制表符分隔的文件,我想导入到 SQL Server 2012;行终止符是 CRLF。以下是我在 PowerShell 中的 BCP 语句:
bcp database.dbo.table IN C:\filePath.tsv -SserverName -UuserName -Ppassword -c -t\t -r\n
其中报告
Unexpected EOF encountered
错误。
我一辈子都弄不明白为什么这行不通。多一个眼睛就好了。
编辑: 经过审查,我认为问题出在 -r\n...CRLF 的元字符是什么?
十六进制编码:
bcp database.dbo.table IN C:\filePath.tsv -SserverName -UuserName -Ppassword -c -t0x9 -r0xa
您可以使用多个字符,方法是将每个字符编码为十六进制并将它们附加在一起。例如,我们使用记录分隔符、回车return和换行符来分隔每一行,因此我们将0x1e0d0a
作为-r
参数的值传递。
我使用 ASCII Table 来快速查找。