私はスプレッドシートを持っています。名前、住所、電話番号、電子メールなどの企業情報が含まれています。私がしたいのは、SQLへのフラットインポートを作成できるテーブルにすることです。私はMS SQLインポートウィザードを使用しています。私はBCPを使用していません。DTSインポートに失敗する
それは最後まですべての方法を取得し、私は、このエラーを与える:
Blockquote Operation stopped...
初期化データフロータスク(成功)
初期接続(成功)
SQLコマンドの設定(成功)
設定元接続(成功)
目的地設定接続(成功)
検証(成功) メッセージ 警告0x80049304:データフロータスク1:警告:パフォーマンスと通信するためのグローバル共有メモリを開くことができませんでしたDLL;データフローのパフォーマンスカウンタは使用できません。解決するには、このパッケージを管理者またはシステムのコンソールで実行します。 (SQL Serverインポートおよびエクスポートウィザード)
実行の準備(成功)
事前実行(成功)
実行(エラー) メッセージ エラー0xc020901c:データフロータスク1 :Source - crm_company $ .Outputs [Excel Source Output] .Columns [Directions] on Source - crm_company $ .Outputs [Excel Source Output]にエラーがありました。返される列のステータスは次のとおりです。 "テキストが切り捨てられました。または、1つ以上の文字がターゲットコードページに一致しませんでした。" (SQL Serverインポートおよびエクスポートウィザード)
エラー0xc020902a:データフロータスク1: "ソース - crm_company $ .Outputs [エクセルソース出力] .Columns [道順]" 切り捨てが発生したため失敗し、 "Source - crm_company $ .Outputs [Excel Source Output] .Columns [Directions]"の切り捨て行の配置は、切り捨て時の失敗を指定します。指定されたコンポーネントの指定されたオブジェクトで切り捨てエラーが発生しました。 (SQL Serverインポートおよびエクスポートウィザード)[DBO]へ
コピー[crm_company](停止) メッセージ エラー0xc0047038:データフロータスク1:SSISエラーコードDTS_E_PRIMEOUTPUTFAILED。 Source - crm_company $のPrimeOutputメソッドがエラーコード0xC020902Aを返しました。このコンポーネントは、パイプラインエンジンがPrimeOutput()を呼び出したときにエラーコードを返しました。障害コードの意味はコンポーネントによって定義されますが、エラーは致命的で、パイプラインは実行を停止します。この前にエラーメッセージが表示され、そのエラーの詳細が表示されることがあります。 (SQL Serverインポートおよびエクスポートウィザード)
ポスト実行(成功) メッセージ 情報0x4004300b:データフロータスク1: "宛先 - crm_companyは" 469行を書きました。 (SQL Serverインポートおよびエクスポートウィザード)
Blockquote
まず第一に、私は、任意の切り捨てエラーを無視するようにDTSを告げてきました。ソースフィールドは、intまたはnvarcharです。私は、マッピングを編集し、必要な列のために浮動小数点数の代わりにintを強制します。私は、デフォルトの列サイズを255から510に設定しました。DirectionsとNotesという2つの列に対して、Directionsはnvarcharで、Notesはnvarchar(最大)であると判断しました。 Directions 1をオーバーライドして、nvarchar(max)として扱われ、実行後にテーブル内に作成されることがわかります。しかし、それが実行されると、上記のエラーで毎回失敗します。
私はこのデータをテーブルに入れるだけです。それで全部です。私がテーブルを手動で指定してインポートすると、それでもエラーになります。ルートの最長テキストの長さは978文字なので、ほとんど巨大ではありません。私はそれが切り詰めるかどうか気にしない、私はちょうどそれが必要と感じるときにそれを停止したくない。インポートする16000行があり、失敗する前にインポートされるのは470だけです。
奇妙なことに、DTSがスプレッドシート内のデータをその順番どおりに取り込んでいないため、ソースファイルでどのローが失敗したのかわかりません。 Go figure。私は20行のテキストデータを貼り付けることによって列フォーマットが何であるかを決める際にDTSの愚かなattemtpsを無効にしようとしましたが、それでも失敗します。
いずれかの列の値の1つに列区切り文字が含まれている可能性はありますか?または行の区切り文字ですか? –
これはCSVインポートではありません。 xlsxファイルなので区切り文字はありません。プレビューは正常で、すべてが正しい列に表示されます。グローバルに切り捨てを無視するように指示し、長さが1000文字以下のデータを含む列をnvarchar(max)フィールドにインポートする場合、問題はなく、切り捨ては発生しません。切り詰めるべきものが見つかった場合は、それを無視する必要があります。なぜなら、これは設定方法ですが、私の設定は無視されるからです。 – snert