【发布时间】:2012-07-18 23:32:44
【问题描述】:
我最近在使用 bcp 时遇到了一个错误。 这是错误。
SQLState = 22001,NativeError = 0 错误 = [Microsoft][SQL Server Native Client 10.0]字符串数据,右截断
我正在尝试将数据解压缩到一个没有任何约束的临时表中,并且与数据相比,数据类型也相当大。我有大约 11 个来自不同表的文件被 bcp'd 并在解压缩错误时从其中只有一个文件压缩出来。 这是我一直成功使用的命令。最近(在尝试制作当前 WH 的副本并设置流程时)我遇到了一些问题。
bcp.exe employee_details in employee_details.dat -n -E -S "servername" -U sa -P "密码"
我尝试将命令更改为 -C -T -S,当我手动提供格式时,它起作用了。这是一个非常大且重要的数据包,我需要将其加载到我的 WH 中。
我不知道我是否在这里看到了格式文件。
需要任何帮助。
谢谢
肉桂女孩。
【问题讨论】:
-
你能说得更具体点吗? “相当大”是什么意思?您能否显示表定义的实际 CREATE TABLE 以及文件中较长行的一些示例?
-
好吧,Aaron,抱歉不够清楚。我的文件可能在 1000 KB 到 800,000KB 之间,具体取决于流量或高峰时段。我的表有示例列,例如 epoch_time(bigint)、server_id(varchar)、uid_rl(int)、apl(int),它们是标识列,而其他一些列分布在 int 和 float 之间。谢谢肉桂女孩
-
我不是要查看整个文件,或者像
varchar-varchar(what)这样的模糊内容?输入是什么样的?您给我们一个模糊的错误消息,表明您正在尝试填充至少一个对其列来说太大的值,但您不会告诉我们表定义或向我们展示导致它的数据?您希望我们如何提供帮助?也许你可以打印出你的文件,把它放在飞镖靶上,然后向它扔飞镖,它会告诉你导致问题的价值?这就是您要求我们为您做的事情。 -
一定要使用
bcp吗?您可以尝试导入和导出数据(64 位)(又名 DTS 向导)吗?您必须像 SSIS 一样精心指定数据格式,并且必须使用原始数据类型而不是 SQL 数据类型,但它确实工作得很好,并且允许您预览数据的解释方式。 -
确保架构/列匹配。您甚至可以考虑删除目标表并使用源表中的脚本重新创建它。
标签: sql-server-2008 sql-server-2008-r2 bcp