次のコマンドを使用して、SQLServerにデータをロードしています。
INSERT INTO [NewTable]
SELECT * FROM OPENROWSET
(
'MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\SomeFolder\;'
, 'SELECT * from [SomeFile.csv]'
);
問題は、明らかにドライバーが各フィールドのデータ型を推測しようとし、キャストが失敗した場合は単にnullを読み取ることです。たとえば、次のようなものがあるとします。
SomeCode SomeName
100 A
299 B
22 C
123 D
ABC E
900 F
「SomeCode」は整数であり、「ABC」はNULLとして読み取られるようです。これを防ぐ方法はありますか?私が欲しいのは、データがずっとvarcharsとして扱われることです。
何か案は?