我正在尝试将BCP文本文件转换为Azure。
问题是,当我有一个空值,它将NULL字写入txt文件。由于NULL而导致BCP失败
如何解决此问题,因为它会导致错误,当我尝试BCP时,因为它试图将NULL写入数字和GUID字段。
我正在尝试将BCP文本文件转换为Azure。
问题是,当我有一个空值,它将NULL字写入txt文件。由于NULL而导致BCP失败
如何解决此问题,因为它会导致错误,当我尝试BCP时,因为它试图将NULL写入数字和GUID字段。
您必须转换基本文本文件以删除NULLS。
ISNULL(CAST(NullField为varchar(50)), '')AS NullField
这是在表中的对接与很多列的一个巨大的痛苦,所以如果有更简单的方法,由所有的手段共享。
当值为NULL时,只需将内容留空而不写入NULL。这里是一个例子:
Data to write = 34,45,23,12,NULL,21,67
txt file = 34,45,23,12,,21,67
希望这会帮助你解决你的问题。
问题是当它写入文件时,它会自动将NULL一词写入文件。尝试查找和替换,它似乎杀死了文件上的TAB分隔符,这也是不切实际的,因为我正在处理文件中的数百万条记录。 – alemus 2014-08-28 21:32:21
你有没有可能修改写作过程,以改变这种情况?如果您可以向我们提供文件内容的示例以及您用于BCP的命令(如果使用格式文件,那么也是有用的),这将非常有用。 – 2014-08-28 21:41:24
在查询分析器中,当你写入一个文件时,我不相信有一种方法可以将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
向我们展示您正在使用的命令。 – RBarryYoung 2014-08-28 21:11:05