尝试批量插入时,数据帧数据类型“int”与sql“bigint”不匹配

2024-06-13 13:41:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这种情况。我需要将数据帧导出到CSV,然后使用bulkinsert将其导入到sqlserver数据库。你知道吗

当我尝试导入数据库时,问题出现了。其中一行的错误是:

Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 7, column 18 (duration). Msg 4864, Level 16, State 1, Line 1

我在其他列中解决了其他类型的问题,在需要的地方转换为string,转换为intfloat。但是在engagementId列中,没有避免错误的选项。SQL列是bigint类型,是它与另一列的主键。你知道吗

有人能帮我尝试不同的方法来解决吗?你知道吗

表脚本创建:

使用[表格名称] 去吧

/****** Object:  Table [LivePerson].[Interaction]    Script Date: 3/11/2019 1:35:49 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [LivePerson].[Interaction](
    [accountId] [nvarchar](max) NULL,
    [agentDeleted] [bit] NULL,
    [agentFullName] [nvarchar](max) NULL,
    [agentGroupId] [bigint] NULL,
    [agentGroupName] [nvarchar](max) NULL,
    [agentId] [nvarchar](max) NULL,
    [agentLoginName] [nvarchar](max) NULL,
    [agentNickName] [nvarchar](max) NULL,
    [alertedMCS] [bigint] NULL,
    [campaignId] [bigint] NULL,
    [channel] [bigint] NULL,
    [chatDataEnriched] [bit] NULL,
    [chatMCS] [bigint] NULL,
    [chatRequestedTime] [nvarchar](max) NULL,
    [chatRequestedTimeL] [bigint] NULL,
    [chatStartPage] [nvarchar](max) NULL,
    [chatStartUrl] [nvarchar](max) NULL,
    [duration] [nvarchar](max) NULL,
    [ended] [nvarchar](5) NULL,
    [endReason] [nvarchar](max) NULL,
    [endReasonDesc] [nvarchar](max) NULL,
    [endTime] [nvarchar](max) NULL,
    [endTimeL] [bigint] NULL,
    [engagementId] [bigint] NOT NULL,
    [engagementSequence] [bigint] NULL,
    [engagementSet] [bigint] NULL,
    [interactive] [bit] NULL,
    [isAgentSurvey] [bit] NULL,
    [isInteractive] [bit] NULL,
    [isPartial] [bit] NULL,
    [isPostChatSurvey] [bit] NULL,
    [isPreChatSurvey] [bit] NULL,
    [mcs] [bigint] NULL,
    [sharkEngagementId] [nvarchar](max) NULL,
    [skillId] [bigint] NULL,
    [skillName] [nvarchar](max) NULL,
    [startReason] [nvarchar](max) NULL,
    [startReasonDesc] [nvarchar](max) NULL,
    [startTime] [nvarchar](max) NULL,
    [startTimeL] [bigint] NOT NULL,
    [visitorId] [nvarchar](max) NULL,
    [visitorName] [nvarchar](max) NULL,
 CONSTRAINT [PK_Interaction] PRIMARY KEY CLUSTERED 
(
    [engagementId] ASC,
    [startTimeL] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [LivePerson].[Interaction]  WITH CHECK ADD  CONSTRAINT [FK_Interaction_Campaign] FOREIGN KEY([campaignId])
REFERENCES [LivePerson].[Campaign] ([campaignId])
GO

ALTER TABLE [LivePerson].[Interaction] CHECK CONSTRAINT [FK_Interaction_Campaign]
GO

数据帧csv输出:

interactions是数据帧。你知道吗

 interactions['engagementId'][0]
    459475934298459124

 interactions['engagementId'][0].__class__
    <class 'numpy.int64'>

我试过了

interactions['engagementId'].astype(int)
interactions['engagementId'].astype(numpy.int32)
interactions['engagementId'].astype(numpy.int64)

谢谢。你知道吗


Tags: 数据goontablebitnullmaxprimary