Создаю таблицу:
CREATE TABLE [dbo].[EvAlaska]
(
[EvID] BIGINT NOT NULL PRIMARY KEY IDENTITY,
[GeoID] VARCHAR(10) NOT NULL,
[Year] smallint NOT NULL,
[LocationName] VARCHAR(40) NULL,
[ParentLocation] VARCHAR(40) NULL,
[Population] int NULL,
[PovertyRate] decimal(7,2) NULL,
[RenterOccupiedHouseholds] int NULL,
[PctRenterOccupied] decimal(4,2) NULL,
[MedianGrossRent] int NULL,
[MedianHouseholdIncome] int NULL,
[MedianPropertyValue] int NULL,
[RentBurden] decimal(3,1) NULL,
[PctWhite] decimal(4,2) NULL,
[PctAfAm] decimal(4,2) NULL,
[PctHispanic] decimal(4,2) NULL,
PctAmInd decimal(3,1) NULL,
PctAsian decimal(3,1) NULL,
PctNhPi decimal(3,1) NULL,
PctMultiple decimal(3,1) NULL,
PctOther decimal(3,1) NULL,
[EvictionFilings] int NULL,
[Evictions] int NULL,
[EvictionRate] decimal(3,1) NULL,
[EvictionFilingRate] decimal(3,1) NULL,
[LowFlag] bit NULL,
[Imputed] bit NULL,
[Subbed] bit NULL
)
Скачиваю CSV файл
curl https://eviction-lab-data-downloads.s3.amazonaws.com/AK/all.csv -o AK.csv
Теперь пытаюсь его импортнуть в таблицу.
BULK INSERT EvAlaska
FROM 'C:\tmp\AK.csv'
WITH
(
FIRSTROW = 2,
FORMAT = 'CSV',
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '0x0a',
ERRORFILE = 'C:\tmp\AK-err.csv'
,TABLOCK
)
Опа — сразу получаю:
Msg 7301, Level 16, State 2, Line 45
Cannot obtain the required interface ("IID_IColumnsInfo") from OLE DB provider "BULK" for linked server "(null)".
Это что, это куда, это о чем?
Здравствуйте, senglory, Вы писали:
S>А можно как-то для BULK INSERT указать соответствие полей?
Кажется нет.
Ключ потом добавить просто:
ALTER TABLE dbo.YourTable
ADD ID INT IDENTITY
Можно же и по другому импортировать.
Здравствуйте, senglory, Вы писали:
S>Это что, это куда, это о чем?
У него трудности с интерпретацией колонок. Для начала, попробуйте убрать FORMAT='CSV'.
BULK INSERT EvAlaska
FROM 'C:\tmp\AK.csv'
WITH
(
FIRSTROW = 2,
-- FORMAT = 'CSV',
DATAFILETYPE = 'char',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '0x0a',
ERRORFILE = 'C:\tmp\AK-err.csv'
,TABLOCK
)