当前位置: 首页 > 知识库问答 >
问题:

异常SqlBulkCopy列映射

濮阳旺
2023-03-14

我尝试过使用SqlBulkCopy在不同的数据库和模式之间迁移数据。这是sql命令从源数据库获取数据:

SELECT TOP 2000000 SUBSTRING(HANM002001,1,8) AS HANM002001,
               (HANM002004 +' '+HANM002005) AS HANM002004,
               HANM002007,
               '' AS col4,
               HANM002008,
               (HANM002009+' '+HANM002010) AS HANM002009,
               SUBSTRING(HANM002013,1,13) AS HANM002012,
               SUBSTRING(HANM002013,1,13) AS HANM002013,
               '' AS col9,
               0 AS col10,
               0 AS col11,
               HANM002027,
               HANM002030,
               HANM002033,
               '' AS col15,
               '' AS col16,
               '' AS col17,
               '' AS col18,
               '' AS col19,
               '' AS col20,
               '' AS col21,
               '' AS col22,
               '' AS col23,
               0 AS col24,
               0 AS col25,
               '' AS col26,
               HANM002INS

来自HAN07M002SHIIRE

这是目标表架构:

CREATE TABLE [dbo].[mst仕入先](
[仕入先コード] [varchar](8) NOT NULL,
[仕入先名] [nvarchar](40) NULL,
[仕入先名カナ] [nvarchar](30) NULL,
[仕入先略称] [nvarchar](14) NULL,
[郵便番号] [varchar](10) NULL,
[住所] [nvarchar](100) NULL,
[電話番号] [varchar](13) NULL,
[FAX番号] [varchar](13) NULL,
[担当者コード] [varchar](6) NULL,
[税計算区分] [smallint] NULL,
[端数区分] [smallint] NULL,
[締日] [smallint] NULL,
[入金日] [smallint] NULL,
[入金サイクル] [smallint] NULL,
[銀行コード] [varchar](4) NULL,
[支店コード] [varchar](3) NULL,
[口座番号] [varchar](7) NULL,
[受取人名] [nvarchar](30) NULL,
[業者コード] [varchar](6) NULL,
[買掛仕入コード] [varchar](6) NULL,
[買掛経費コード] [varchar](6) NULL,
[現金コード] [varchar](6) NULL,
[表示区分] [smallint] NULL,
[削除フラグ] [smallint] NULL,
[更新者] [varchar](2) NULL,
[更新日] [datetime] NULL,

主键群集([仕入先コード] ASC)打开[主](PAD\u INDEX=OFF,STATISTICS\u NORECOMPUTE=OFF,IGNORE\u DUP\u KEY=OFF,ALLOW\u ROW\u LOCKS=ON,ALLOW\u PAGE\u LOCKS=ON)

以下是代码映射:

Using sqlCopy As SqlBulkCopy = New SqlBulkCopy(destinationConnection.ConnectionString)
                    sqlCopy.ColumnMappings.Add("HANM002001", "仕入先コード")
                    sqlCopy.ColumnMappings.Add("HANM002004", "仕入先名")
                    sqlCopy.ColumnMappings.Add("HANM002007", "仕入先名カナ")
                    sqlCopy.ColumnMappings.Add("col4", "仕入先略称")
                    sqlCopy.ColumnMappings.Add("HANM002008", "郵便番号")
                    sqlCopy.ColumnMappings.Add("HANM002009", "住所")
                    sqlCopy.ColumnMappings.Add("HANM002012", "電話番号")
                    sqlCopy.ColumnMappings.Add("HANM002013", "FAX番号")
                    sqlCopy.ColumnMappings.Add("col9", "担当者コード")
                    sqlCopy.ColumnMappings.Add("col10", "税計算区分")
                    sqlCopy.ColumnMappings.Add("col11", "端数区分")
                    sqlCopy.ColumnMappings.Add("HANM002027", "締日")
                    sqlCopy.ColumnMappings.Add("HANM002030", "入金日")
                    sqlCopy.ColumnMappings.Add("HANM002033", "入金サイクル")
                    sqlCopy.ColumnMappings.Add("col15", "銀行コード")
                    sqlCopy.ColumnMappings.Add("col16", "支店コード")
                    sqlCopy.ColumnMappings.Add("col17", "預金種目")
                    sqlCopy.ColumnMappings.Add("col18", "口座番号")
                    sqlCopy.ColumnMappings.Add("col19", "受取人名")
                    sqlCopy.ColumnMappings.Add("col20", "業者コード")
                    sqlCopy.ColumnMappings.Add("col21", "買掛仕入コード")
                    sqlCopy.ColumnMappings.Add("col22", "買掛経費コード")
                    sqlCopy.ColumnMappings.Add("col23", "現金コード")
                    sqlCopy.ColumnMappings.Add("col24", "表示区分")
                    sqlCopy.ColumnMappings.Add("col25", "削除フラグ")
                    sqlCopy.ColumnMappings.Add("col26", "更新者")
                    sqlCopy.ColumnMappings.Add("HANM002INS", "更新日")
                    'sqlCopy.NotifyAfter = importTbl.Rows.Count
                    sqlCopy.DestinationTableName = Constant.ShiiresakiMst
                    sqlCopy.BulkCopyTimeout = 0
                    sqlCopy.WriteToServer(sourceReader)
                End Using

但引发异常:给定的ColumnMapping与源或目标中的任何列都不匹配。

请帮忙。

谢谢

共有1个答案

邓德惠
2023-03-14

目标表只有26列,但您在列映射中提到了27列。

 类似资料:
  • 我正在努力使用Java Spring Hibernate,我正在尝试实现Oauth2,在通过@ManyToMany将表用户连接到角色时,我不断遇到错误。我已经阅读了所有关于我的问题的答案,无论我尝试什么,我仍然得到了一个组织。冬眠映射异常。 以下是我正在努力做的事情的全部细节。 数据库结构 角色。JAVA 使用者JAVA 依赖性 问题: org.springframework.beans.fact

  • 问题内容: 特定实体存在映射例外。不能弄清楚问题出在哪里。我从头到尾检查了所有映射3次。我仍然收到映射异常。 发送给员工的电子邮件仅映射一次。但它仍然报告错误重复映射 错误是: 电子邮件Pojo email.hbm.xml 相关脚本 发送给员工的电子邮件仅映射一次。但它仍然报告错误重复映射 问题答案: 您是否将Employee中的集合设置为逆?

  • 首先,我对这个问题太长表示最诚挚的歉意,但老实说,我不知道如何缩短它,因为每个部分都是一个特例。诚然,我可能对此视而不见,因为我已经把头撞到墙上好几天了,我开始绝望了。 我向所有通读这本书的人表示最大的尊重和感谢。 我希望能够通过使用Jersey ExceptionMapers将Shiro的AuthenticationException及其子类映射到JAX-RS响应,Jersey例外映射器是使用G

  • 是否强制将我的外键实体从ClassA映射到ClassB中的主实体?

  • 我有一个映射到字符串值的特定键的映射列表。 类似于<代码>列表 目标:浏览此地图列表,并收集所有地图中单个键的值。 我是怎么做到的- 问题是:如果没有这样的密钥,我会因为a.get(key)而出现异常!因为求平均值会得到一个空值。如何检查或使lambda忽略任何此类地图并继续前进。 我知道我可以在

  • 我认为错误并不在注释中,因为我更改了几次注释,仍然得到了相同的异常。