- 締切済み
datetime型のインポートについて
はじめまして。 datetime型のインポートについて質問ですが、 datetime型にNULLをインポートしようとすると、 "キャストした文字コードが正しくありません。"。 のエラーが出力されてしまいます。 また、datetime型に何も入力していないデータをテキストへエクスポートし、そのテキストを再度インポートしても同様のエラーが出力されます。 何か解決方法がございましたらご教授願います。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- jamshid6
- ベストアンサー率88% (591/669)
回答No.2
データベースを右クリックして「タスク→データのインポート」ってやっているのですよね? (そのデータインポートおよびエクスポートウィザードで、データソースにフラットファイルソース、変換先にSQL Serverを使用してインポートしているのだと思っていますが) 私が書いているのは、そのウィザードの設定画面の「詳細設定」画面の話です。 もし違う方法でインポートしているのであればどうやってインポートしているか教えて頂けますか?
- jamshid6
- ベストアンサー率88% (591/669)
回答No.1
データソースの選択画面の、詳細設定では該当列のDataTypeが文字列[DT_STR]と認識されていると思いますので、それを日付[DT_DATE]に変更します。 そうするとエラーにはならなくなるはずです。 ただし、インポートした結果はNULLでなく、1899/12/30になります。 データインポートユーティリティも内部的にはSSISなのですが、SSIS側の方に変換したときにNULLを保持できないようです。 (つまり、仕様ってことでしょうか。DTSではこんなことなかったと思いますけど) 私は、あとでNULLにUPDATEするか、CSVならBULK INSERTを使っています。
補足
jamshid6様、回答有難うございます。 SqlServer Management Studioを使用しておりますが、 データ型に[DT_STR]はなく、datetimeとなっております。 (列のプロパティの全般にて設定) Nullを許可も"はい"となっているのにエラーになってしまいます。