これはテーブルのスキーマです
Create table dbo.Project
(
ProjectID (int,not null)
ManagerID (int,not null)
CompanyID(int, not null)
Title (nvarchar(50),not null)
StartDate(datetime,not null)
EndDate(datetime,null)
ProjDescription(nvarchar(max))
)
次のbcpコマンドを使用して、このテーブルから約15行のbob.datというデータファイルを作成しました
bcp "Select ProjectID,ManagerID,CompanyID,Title,StartDate from CATS.dbo.Project" queryout "C:\Documents\bob.dat" -Sbob-pc -T -n
また、次の bcp コマンドを使用して、bob.fmt というフォーマット/マッピング ファイルが作成されました。
bcp CATS.dbo.Project format nul -f C:\Documents\bob.fmt -x -Sbob-pc -T -n
次に、テーブル Project のコピーを作成しました。
Create table dbo.ProjectCopy
(
ProjectID (int,not null)
ManagerID (int,not null)
CompanyID(int, not null)
Title (nvarchar(50),not null)
StartDate(datetime,not null)
EndDate(datetime,null)
ProjDescription(nvarchar(max))
)
今やりたいことは、bob.dat および bob.format ファイルを使用して、次の一括挿入ステートメントを使用してこのテーブル ProjectCopy にデータを入力することです。
BULK INSERT CATS.dbo.ProjectCopy
FROM 'C:\Documents\bob.dat'
WITH (FORMATFILE = 'C:\Documents\bob.fmt',
LASTROW=5,
KEEPNULLS,
DATAFILETYPE='native');
GO
SELECT * FROM CATS.dbo.ProjectCopy
GO
したがって、基本的に、データ ファイルには EndDate 列と ProjDescription 列のデータは含まれていません。これらの 2 つの列を null のままにしておきます。残念ながら、一括挿入ステートメントを実行すると、次のエラーが発生します。
Msg 4863, Level 16, State 4, Line 2
Bulk load data conversion error (truncation) for row 1, column 6 (EndDate).
Msg 7399, Level 16, State 1, Line 2
The OLE DB provider "BULK" for linked server "(null)" reported an error.
The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 2
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
(0 row(s) affected)
誰でもこれを修正する方法を知っていますか? 私はすでにこのセクションに行ったことがあり、そこで提供された解決策はうまくいきませんでした。 一貫性のない列数での BULK INSERT 、一貫性のない列数でのBULK INSERT の BULK INSERT エラーの 理由を特定できません