2014-08-28 197 views
0

我正在尝试将BCP文本文件转换为Azure。
问题是,当我有一个空值,它将NULL字写入txt文件。由于NULL而导致BCP失败

如何解决此问题,因为它会导致错误,当我尝试BCP时,因为它试图将NULL写入数字和GUID字段。

+0

向我们展示您正在使用的命令。 – RBarryYoung 2014-08-28 21:11:05

回答

0

您必须转换基本文本文件以删除NULLS。

ISNULL(CAST(NullField为varchar(50)), '')AS NullField

这是在表中的对接与很多列的一个巨大的痛苦,所以如果有更简单的方法,由所有的手段共享。

0

当值为NULL时,只需将内容留空而不写入NULL。这里是一个例子:

Data to write = 34,45,23,12,NULL,21,67 
txt file = 34,45,23,12,,21,67 

希望这会帮助你解决你的问题。

+0

问题是当它写入文件时,它会自动将NULL一词写入文件。尝试查找和替换,它似乎杀死了文件上的TAB分隔符,这也是不切实际的,因为我正在处理文件中的数百万条记录。 – alemus 2014-08-28 21:32:21

+0

你有没有可能修改写作过程,以改变这种情况?如果您可以向我们提供文件内容的示例以及您用于BCP的命令(如果使用格式文件,那么也是有用的),这将非常有用。 – 2014-08-28 21:41:24

+1

在查询分析器中,当你写入一个文件时,我不相信有一种方法可以将null这个词压缩为null值。 这是一个制表符分隔的文本文件。 BCP命令是 BCP MyDb.dbo.MyTable IN C:\ myfile.txt -c -t \ t -r \ n -k -U用户名-S服务器名称-P密码失败时使用或不使用-k – alemus 2014-08-28 21:57:31

相关问题