l--*_*''' 38 sql t-sql sql-server ssis
我正在尝试将平面文件导入oledb目标sql server数据库.
这是给我带来麻烦的领域:

这是该平面文件连接的属性,特别是字段:

这是错误信息:
[来源 - 18942979103_txt [424]]错误:数据转换失败.列"recipient-name"的数据转换返回状态值4和状态文本"文本被截断或一个或多个字符在目标代码页中不匹配".
我究竟做错了什么?
ADH*_*ADH 40
以下是解决这个问题的方法.我没有必要转换为Excel.在选择数据源为"文本流"时,只需修改DataType(图1).您还可以选中"编辑映射"对话框以验证对大小的更改(图2).
图1
图2
Cho*_*oos 20
我知道这是一个老问题.我解决它的方式 - 在通过增加长度或甚至更改为数据类型文本失败后 - 创建了一个xlsx文件并导入.它准确地检测到数据类型,而不是将所有列设置为varchar(50).结果是nvharchar(255),该列也会这样做.
小智 17
我通过ORDERING我的源数据(xls,csv,无论如何)来解决这个问题,使得文件顶部的文本值最长.Excel很棒.在挑战性的专栏上使用LEN()函数.按该长度值排序,数据集顶部的最长值.保存.再次尝试导入.
SQL Server可能能够为您建议正确的数据类型(即使默认情况下它没有选择正确的类型) - 单击"建议类型"按钮(如上面的屏幕截图所示)允许您让SQL Server扫描源并建议抛出错误的字段的数据类型.在我的情况下,选择扫描20000行来生成建议,并使用生成的建议数据类型,修复了问题.
| 归档时间: |
|
| 查看次数: |
165334 次 |
| 最近记录: |