【问题标题】:SQL Server says data is too large for column?SQL Server 说数据对于列来说太大了?
【发布时间】:2019-04-15 18:21:04
【问题描述】:

我正在尝试使用 SQL Server Management Studios 任务 -> 导入数据向导将一个非常宽的 CSV 文件(339 列)导入 SQL Server 表。

当我设置导入并尝试运行它时,它返回以下错误:

错误 0xc02020a1:数据流任务 1:数据转换失败。 “Other Provider Identifier Issuer_1”列的数据转换返回状态值 4 和状态文本“文本被截断或目标代码页中有一个或多个字符不匹配。”。

错误 0xc020902a:数据流任务 1:“源 - test_csv.Outputs[平面文件源输出].Columns[“Other Provider Identifier Issuer_1”]”失败,因为发生了截断,并且“源 - test_csv”上的截断行处置.Outputs[平面文件源输出].Columns["Other Provider Identifier Issuer_1"]" 指定截断失败。指定组件的指定对象发生截断错误。

错误 0xc0202092:数据流任务 1:处理数据行 79 上的文件“C:\data\test.csv”时出错。

错误 0xc0047038:数据流任务 1:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。 Source - test_csv 上的 PrimeOutput 方法返回错误代码 0xC0202092。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但是错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

这似乎是说Other Provider Identifier Issuer_1 列中第 79 行的值对于该列来说太大了。但是该列是 varchar(80) 并且正在导入的平面文件中该位置的值只有 53 个字符长 (MEDICARE PTAN FOR SOUTHERN EYE PHYSICIAN'S CENTER LLC)

假设我上面给出的原因是我的导入出错的原因,我是否正确?如果是这样 - 当目标列似乎有足够的数据空间时,为什么会抛出该错误?我该如何解决这个问题?

表定义如下,如果源数据文件的示例对我有帮助,请告诉我,我将其包含在内/

create table NPPES(
[NPI] varchar(11),
[Entity Type Code] varchar(10),
[Replacement NPI] varchar(10),
[Employer Identification Number (EIN)] varchar(9),
[Provider Organization Name (Legal Business Name)] varchar(70),
[Provider Last Name (Legal Name)] varchar(35),
[Provider First Name] varchar(20),
[Provider Middle Name] varchar(20),
[Provider Name Prefix Text] varchar(5),
[Provider Name Suffix Text] varchar(5),
[Provider Credential Text] varchar(20),
[Provider Other Organization Name] varchar(70),
[Provider Other Organization Name Type Code] varchar(1),
[Provider Other Last Name] varchar(35),
[Provider Other First Name] varchar(20),
[Provider Other Middle Name] varchar(20),
[Provider Other Name Prefix Text] varchar(5),
[Provider Other Name Suffix Text] varchar(5),
[Provider Other Credential Text] varchar(20),
[Provider Other Last Name Type Code] varchar(5),
[Provider First Line Business Mailing Address] varchar(55),
[Provider Second Line Business Mailing Address] varchar(55),
[Provider Business Mailing Address City Name] varchar(40),
[Provider Business Mailing Address State Name] varchar(40),
[Provider Business Mailing Address Postal Code] varchar(20),
[Provider Business Mailing Address Country Code (If outside U.S.)] varchar(2),
[Provider Business Mailing Address Telephone Number] varchar(20),
[Provider Business Mailing Address Fax Number] varchar(20),
[Provider First Line Business Practice Location Address] varchar(55),
[Provider Second Line Business Practice Location Address] varchar(55),
[Provider Business Practice Location Address City Name] varchar(40),
[Provider Business Practice Location Address State Name] varchar(40),
[Provider Business Practice Location Address Postal Code] varchar(20),
[Provider Business Practice Location Address Country Code (If outside U.S.)] varchar(2),
[Provider Business Practice Location Address Telephone Number] varchar(20),
[Provider Business Practice Location Address Fax Number] varchar(20),
[Provider Enumeration Date] varchar(20),
[Last Update Date] varchar(20),
[NPI Deactivation Reason Code] varchar(2),
[NPI Deactivation Date] varchar(20),
[NPI Reactivation Date] varchar(20),
[Provider Gender Code] varchar(1),
[Authorized Official Last Name] varchar(35),
[Authorized Official First Name] varchar(20),
[Authorized Official Middle Name] varchar(20),
[Authorized Official Title or Position] varchar(35),
[Authorized Official Telephone Number] varchar(20),
[Healthcare Provider Taxonomy Code_1] varchar(10),
[Provider License Number_1] varchar(20),
[Provider License Number State Code_1] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_1] varchar(1),
[Healthcare Provider Taxonomy Code_2] varchar(10),
[Provider License Number_2] varchar(20),
[Provider License Number State Code_2] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_2] varchar(1),
[Healthcare Provider Taxonomy Code_3] varchar(10),
[Provider License Number_3] varchar(20),
[Provider License Number State Code_3] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_3] varchar(1),
[Healthcare Provider Taxonomy Code_4] varchar(10),
[Provider License Number_4] varchar(20),
[Provider License Number State Code_4] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_4] varchar(1),
[Healthcare Provider Taxonomy Code_5] varchar(10),
[Provider License Number_5] varchar(20),
[Provider License Number State Code_5] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_5] varchar(1),
[Healthcare Provider Taxonomy Code_6] varchar(10),
[Provider License Number_6] varchar(20),
[Provider License Number State Code_6] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_6] varchar(1),
[Healthcare Provider Taxonomy Code_7] varchar(10),
[Provider License Number_7] varchar(20),
[Provider License Number State Code_7] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_7] varchar(1),
[Healthcare Provider Taxonomy Code_8] varchar(10),
[Provider License Number_8] varchar(20),
[Provider License Number State Code_8] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_8] varchar(1),
[Healthcare Provider Taxonomy Code_9] varchar(10),
[Provider License Number_9] varchar(20),
[Provider License Number State Code_9] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_9] varchar(1),
[Healthcare Provider Taxonomy Code_10] varchar(10),
[Provider License Number_10] varchar(20),
[Provider License Number State Code_10] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_10] varchar(1),
[Healthcare Provider Taxonomy Code_11] varchar(10),
[Provider License Number_11] varchar(20),
[Provider License Number State Code_11] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_11] varchar(1),
[Healthcare Provider Taxonomy Code_12] varchar(10),
[Provider License Number_12] varchar(20),
[Provider License Number State Code_12] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_12] varchar(1),
[Healthcare Provider Taxonomy Code_13] varchar(10),
[Provider License Number_13] varchar(20),
[Provider License Number State Code_13] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_13] varchar(1),
[Healthcare Provider Taxonomy Code_14] varchar(10),
[Provider License Number_14] varchar(20),
[Provider License Number State Code_14] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_14] varchar(1),
[Healthcare Provider Taxonomy Code_15] varchar(10),
[Provider License Number_15] varchar(20),
[Provider License Number State Code_15] varchar(2),
[Healthcare Provider Primary Taxonomy Switch_15] varchar(1),
[Other Provider Identifier_1] varchar(20),
[Other Provider Identifier Type Code_1] varchar(2),
[Other Provider Identifier State_1] varchar(2),
[Other Provider Identifier Issuer_1] varchar(80),
[Other Provider Identifier_2] varchar(20),
[Other Provider Identifier Type Code_2] varchar(2),
[Other Provider Identifier State_2] varchar(2),
[Other Provider Identifier Issuer_2] varchar(80),
[Other Provider Identifier_3] varchar(20),
[Other Provider Identifier Type Code_3] varchar(2),
[Other Provider Identifier State_3] varchar(2),
[Other Provider Identifier Issuer_3] varchar(80),
[Other Provider Identifier_4] varchar(20),
[Other Provider Identifier Type Code_4] varchar(2),
[Other Provider Identifier State_4] varchar(2),
[Other Provider Identifier Issuer_4] varchar(80),
[Other Provider Identifier_5] varchar(20),
[Other Provider Identifier Type Code_5] varchar(2),
[Other Provider Identifier State_5] varchar(2),
[Other Provider Identifier Issuer_5] varchar(80),
[Other Provider Identifier_6] varchar(20),
[Other Provider Identifier Type Code_6] varchar(2),
[Other Provider Identifier State_6] varchar(2),
[Other Provider Identifier Issuer_6] varchar(80),
[Other Provider Identifier_7] varchar(20),
[Other Provider Identifier Type Code_7] varchar(2),
[Other Provider Identifier State_7] varchar(2),
[Other Provider Identifier Issuer_7] varchar(80),
[Other Provider Identifier_8] varchar(20),
[Other Provider Identifier Type Code_8] varchar(2),
[Other Provider Identifier State_8] varchar(2),
[Other Provider Identifier Issuer_8] varchar(80),
[Other Provider Identifier_9] varchar(20),
[Other Provider Identifier Type Code_9] varchar(2),
[Other Provider Identifier State_9] varchar(2),
[Other Provider Identifier Issuer_9] varchar(80),
[Other Provider Identifier_10] varchar(20),
[Other Provider Identifier Type Code_10] varchar(2),
[Other Provider Identifier State_10] varchar(2),
[Other Provider Identifier Issuer_10] varchar(80),
[Other Provider Identifier_11] varchar(20),
[Other Provider Identifier Type Code_11] varchar(2),
[Other Provider Identifier State_11] varchar(2),
[Other Provider Identifier Issuer_11] varchar(80),
[Other Provider Identifier_12] varchar(20),
[Other Provider Identifier Type Code_12] varchar(2),
[Other Provider Identifier State_12] varchar(2),
[Other Provider Identifier Issuer_12] varchar(80),
[Other Provider Identifier_13] varchar(20),
[Other Provider Identifier Type Code_13] varchar(2),
[Other Provider Identifier State_13] varchar(2),
[Other Provider Identifier Issuer_13] varchar(80),
[Other Provider Identifier_14] varchar(20),
[Other Provider Identifier Type Code_14] varchar(2),
[Other Provider Identifier State_14] varchar(2),
[Other Provider Identifier Issuer_14] varchar(80),
[Other Provider Identifier_15] varchar(20),
[Other Provider Identifier Type Code_15] varchar(2),
[Other Provider Identifier State_15] varchar(2),
[Other Provider Identifier Issuer_15] varchar(80),
[Other Provider Identifier_16] varchar(20),
[Other Provider Identifier Type Code_16] varchar(2),
[Other Provider Identifier State_16] varchar(2),
[Other Provider Identifier Issuer_16] varchar(80),
[Other Provider Identifier_17] varchar(20),
[Other Provider Identifier Type Code_17] varchar(2),
[Other Provider Identifier State_17] varchar(2),
[Other Provider Identifier Issuer_17] varchar(80),
[Other Provider Identifier_18] varchar(20),
[Other Provider Identifier Type Code_18] varchar(2),
[Other Provider Identifier State_18] varchar(2),
[Other Provider Identifier Issuer_18] varchar(80),
[Other Provider Identifier_19] varchar(20),
[Other Provider Identifier Type Code_19] varchar(2),
[Other Provider Identifier State_19] varchar(2),
[Other Provider Identifier Issuer_19] varchar(80),
[Other Provider Identifier_20] varchar(20),
[Other Provider Identifier Type Code_20] varchar(2),
[Other Provider Identifier State_20] varchar(2),
[Other Provider Identifier Issuer_20] varchar(80),
[Other Provider Identifier_21] varchar(20),
[Other Provider Identifier Type Code_21] varchar(2),
[Other Provider Identifier State_21] varchar(2),
[Other Provider Identifier Issuer_21] varchar(80),
[Other Provider Identifier_22] varchar(20),
[Other Provider Identifier Type Code_22] varchar(2),
[Other Provider Identifier State_22] varchar(2),
[Other Provider Identifier Issuer_22] varchar(80),
[Other Provider Identifier_23] varchar(20),
[Other Provider Identifier Type Code_23] varchar(2),
[Other Provider Identifier State_23] varchar(2),
[Other Provider Identifier Issuer_23] varchar(80),
[Other Provider Identifier_24] varchar(20),
[Other Provider Identifier Type Code_24] varchar(2),
[Other Provider Identifier State_24] varchar(2),
[Other Provider Identifier Issuer_24] varchar(80),
[Other Provider Identifier_25] varchar(20),
[Other Provider Identifier Type Code_25] varchar(2),
[Other Provider Identifier State_25] varchar(2),
[Other Provider Identifier Issuer_25] varchar(80),
[Other Provider Identifier_26] varchar(20),
[Other Provider Identifier Type Code_26] varchar(2),
[Other Provider Identifier State_26] varchar(2),
[Other Provider Identifier Issuer_26] varchar(80),
[Other Provider Identifier_27] varchar(20),
[Other Provider Identifier Type Code_27] varchar(2),
[Other Provider Identifier State_27] varchar(2),
[Other Provider Identifier Issuer_27] varchar(80),
[Other Provider Identifier_28] varchar(20),
[Other Provider Identifier Type Code_28] varchar(2),
[Other Provider Identifier State_28] varchar(2),
[Other Provider Identifier Issuer_28] varchar(80),
[Other Provider Identifier_29] varchar(20),
[Other Provider Identifier Type Code_29] varchar(2),
[Other Provider Identifier State_29] varchar(2),
[Other Provider Identifier Issuer_29] varchar(80),
[Other Provider Identifier_30] varchar(20),
[Other Provider Identifier Type Code_30] varchar(2),
[Other Provider Identifier State_30] varchar(2),
[Other Provider Identifier Issuer_30] varchar(80),
[Other Provider Identifier_31] varchar(20),
[Other Provider Identifier Type Code_31] varchar(2),
[Other Provider Identifier State_31] varchar(2),
[Other Provider Identifier Issuer_31] varchar(80),
[Other Provider Identifier_32] varchar(20),
[Other Provider Identifier Type Code_32] varchar(2),
[Other Provider Identifier State_32] varchar(2),
[Other Provider Identifier Issuer_32] varchar(80),
[Other Provider Identifier_33] varchar(20),
[Other Provider Identifier Type Code_33] varchar(2),
[Other Provider Identifier State_33] varchar(2),
[Other Provider Identifier Issuer_33] varchar(80),
[Other Provider Identifier_34] varchar(20),
[Other Provider Identifier Type Code_34] varchar(2),
[Other Provider Identifier State_34] varchar(2),
[Other Provider Identifier Issuer_34] varchar(80),
[Other Provider Identifier_35] varchar(20),
[Other Provider Identifier Type Code_35] varchar(2),
[Other Provider Identifier State_35] varchar(2),
[Other Provider Identifier Issuer_35] varchar(80),
[Other Provider Identifier_36] varchar(20),
[Other Provider Identifier Type Code_36] varchar(2),
[Other Provider Identifier State_36] varchar(2),
[Other Provider Identifier Issuer_36] varchar(80),
[Other Provider Identifier_37] varchar(20),
[Other Provider Identifier Type Code_37] varchar(2),
[Other Provider Identifier State_37] varchar(2),
[Other Provider Identifier Issuer_37] varchar(80),
[Other Provider Identifier_38] varchar(20),
[Other Provider Identifier Type Code_38] varchar(2),
[Other Provider Identifier State_38] varchar(2),
[Other Provider Identifier Issuer_38] varchar(80),
[Other Provider Identifier_39] varchar(20),
[Other Provider Identifier Type Code_39] varchar(2),
[Other Provider Identifier State_39] varchar(2),
[Other Provider Identifier Issuer_39] varchar(80),
[Other Provider Identifier_40] varchar(20),
[Other Provider Identifier Type Code_40] varchar(2),
[Other Provider Identifier State_40] varchar(2),
[Other Provider Identifier Issuer_40] varchar(80),
[Other Provider Identifier_41] varchar(20),
[Other Provider Identifier Type Code_41] varchar(2),
[Other Provider Identifier State_41] varchar(2),
[Other Provider Identifier Issuer_41] varchar(80),
[Other Provider Identifier_42] varchar(20),
[Other Provider Identifier Type Code_42] varchar(2),
[Other Provider Identifier State_42] varchar(2),
[Other Provider Identifier Issuer_42] varchar(80),
[Other Provider Identifier_43] varchar(20),
[Other Provider Identifier Type Code_43] varchar(2),
[Other Provider Identifier State_43] varchar(2),
[Other Provider Identifier Issuer_43] varchar(80),
[Other Provider Identifier_44] varchar(20),
[Other Provider Identifier Type Code_44] varchar(2),
[Other Provider Identifier State_44] varchar(2),
[Other Provider Identifier Issuer_44] varchar(80),
[Other Provider Identifier_45] varchar(20),
[Other Provider Identifier Type Code_45] varchar(2),
[Other Provider Identifier State_45] varchar(2),
[Other Provider Identifier Issuer_45] varchar(80),
[Other Provider Identifier_46] varchar(20),
[Other Provider Identifier Type Code_46] varchar(2),
[Other Provider Identifier State_46] varchar(2),
[Other Provider Identifier Issuer_46] varchar(80),
[Other Provider Identifier_47] varchar(20),
[Other Provider Identifier Type Code_47] varchar(2),
[Other Provider Identifier State_47] varchar(2),
[Other Provider Identifier Issuer_47] varchar(80),
[Other Provider Identifier_48] varchar(20),
[Other Provider Identifier Type Code_48] varchar(2),
[Other Provider Identifier State_48] varchar(2),
[Other Provider Identifier Issuer_48] varchar(80),
[Other Provider Identifier_49] varchar(20),
[Other Provider Identifier Type Code_49] varchar(2),
[Other Provider Identifier State_49] varchar(2),
[Other Provider Identifier Issuer_49] varchar(80),
[Other Provider Identifier_50] varchar(20),
[Other Provider Identifier Type Code_50] varchar(2),
[Other Provider Identifier State_50] varchar(2),
[Other Provider Identifier Issuer_50] varchar(80),
[Is Sole Proprietor] varchar(1),
[Is Organization Subpart] varchar(1),
[Parent Organization LBN] varchar(70),
[Parent Organization TIN] varchar(9),
[Authorized Official Name Prefix Text] varchar(5),
[Authorized Official Name Suffix Text] varchar(5),
[Authorized Official Credential Text] varchar(20),
[Healthcare Provider Taxonomy Group_1] varchar(10),
[Healthcare Provider Taxonomy Group_2] varchar(10),
[Healthcare Provider Taxonomy Group_3] varchar(10),
[Healthcare Provider Taxonomy Group_4] varchar(10),
[Healthcare Provider Taxonomy Group_5] varchar(10),
[Healthcare Provider Taxonomy Group_6] varchar(10),
[Healthcare Provider Taxonomy Group_7] varchar(10),
[Healthcare Provider Taxonomy Group_8] varchar(10),
[Healthcare Provider Taxonomy Group_9] varchar(10),
[Healthcare Provider Taxonomy Group_10] varchar(10),
[Healthcare Provider Taxonomy Group_11] varchar(10),
[Healthcare Provider Taxonomy Group_12] varchar(10),
[Healthcare Provider Taxonomy Group_13] varchar(10),
[Healthcare Provider Taxonomy Group_14] varchar(10),
[Healthcare Provider Taxonomy Group_15] varchar(11)
)

更新:

其他错误

【问题讨论】:

  • 尝试转义“PHYSICIAN'S”,因为它有 char [ ' ] apostrophe/'single quote' 并且可能认为该行的其余部分是一列值
  • 在正在导入的底层平面文件中,特定部分的表示如下:,"MEDICARE PTAN FOR SOUTHERN EYE PHYSICIAN'S CENTER LLC", 我认为这是正确的,不需要更多转义
  • @AbeMiessler 转义字符在可能成为列分隔符时变得很重要,例如:逗号、制表符、空格、分号等。在这种情况下,您需要在连接管理器中设置文本限定符双引号。您应该认为自己很幸运,您引用的平面文件将文本封装在双引号中。

标签: sql-server csv ssis azure-sql-database ssms


【解决方案1】:

该错误与目标 SQL 表无关,从 csv 源抛出异常,因为源列长度定义为 50(默认长度)

您可以在“数据源”页面的“高级”选项卡中更改列长。

【讨论】:

  • 啊——你太棒了!有没有办法大规模地做到这一点?我应该可以将它应用到我的导入中,但是如果有超过 300 列,这将需要很长时间。只是好奇是否有一种“批量”的方式来做到这一点?
  • @AbeMiessler 您可以通过按 Ctrl 键并选择所有列来选择所有列
  • 我不确定这是否相关,但它现在在复制大约 1700 行后“停止”。我没有看到任何错误,但它只是在复制阶段说“停止”。我在原始问题中添加了屏幕截图。知道是什么原因造成的吗?
  • @AbeMiessler 我很确定这与列大小无关。我会搜索这个问题并回复你
  • @AbeMiessler 尝试保存 SSIS 包并从 Visual Studio 执行它,我认为它会给你真正的错误消息。还要检查 Windows 事件日志是否包含任何错误或警告消息
猜你喜欢
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-29
  • 2012-07-22
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
相关资源
最近更新 更多