У меня такая ситуация. Мне нужно экспортировать кадр данных в CSV, а затем импортировать его в базу данных сервера SQL, используя массовую вставку.
Проблема возникает, когда я пытаюсь выполнить импорт в базу данных. Ошибка одной из ее строк:
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
, в int
или float
, где это необходимо. Но в столбце engagementId
нет возможности избежать ошибки. Столбец SQL имеет тип bigint
и является его первичным ключом с другим столбцом.
Кто-то может помочь мне попробовать что-то другое, чтобы решить это?
Создание сценария таблицы:
USE [Table_Name]
GO
/****** 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)
Спасибо.