![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
初めて投稿致します。
過去ログや他サイトでもいくつかみかけた事象ですが、
どこにもはっきりとした回答がないため質問させて頂きました。
知っている方がいたら、ご教授お願いします。
環境は、Win2003Server + SQL Server2000 です。
外部サーバからisqlで取得したデータをPerlでタブ区切りに加工し、
そのファイルをbcpでDBにインサートする処理でエラーが発生します。
エラー内容は、過去ログにもあったとおり
『文字列データの右側が切り捨てられました』というものです。
1行目からエラーが発生し、10回のエラー発生で異常終了します。
ただ、3万行あるデータを2万行と1万行にしてインサートすれば
問題なくDBに登録されます。
この事象はMicrosoftのバグなんでしょうか?
サイト上には、そのようなバグが報告されていないようですが。
それともどこかに仕様として紹介されているのでしょうか。
データのサイズ、レコード数に関わらず
bcpでインポートできるようにしたいのです。
ちなみに、現行は7.0で問題なく上記処理が稼動しています。
本サイト上に示されていた解決法のODBCバージョンですが、
ODBCは最新版が入ってるので、それ以外でこの事象の解決法を
知っている方がいましたらぜひとも教えてください。
以上、よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
・件数次第で成功
・旧SQL-Serverでは成功
という2点で、やはりログファイル的にOKということなので、環境しか考えられないかと・・・
もちろんディスクはFATでフォーマットしてませんよね?
BCPIN最中に、セグメントがギュウギュウになってしまっているとか?
本当にログのフォーマットのせいではないですよね?
>外部サーバからisqlで取得したデータをPerlでタブ区切りに加工し、そのファイルをbcpでDBにインサートする処理でエラー
でも2万と1万に切り分けて成功する。。。
ならば、分割して入れたデータをTAB区切りでBCPOUTしてtruncate、さらにBCPINしても同じところでエラーが出ると思うのですがいかがでしょう?
同じところで出ているのであれば、
3万件のデータがどれほどのサイズであるかを知りたいです。
この回答への補足
>もちろんディスクはFATでフォーマットしてませんよね?
フォーマットはNTFSです。
>本当にログのフォーマットのせいではないですよね?
これはどういうことでしょうか?
ログのフォーマットによって何か起こるということでしょうか??
1050YENさんの言うように、
分割インサートしたデータをbcp outして再度bcp inしても同じ現象がでます。
単純にデータ件数に依存しているようです。
かなり細かくやっていくと、ある件数以上からはエラーが発生するようです。
ちなみにデータのサイズは50M前後です。
よろしくお願いします。
No.3
- 回答日時:
>>本当にログのフォーマットのせいではないですよね?
>これはどういうことでしょうか?
誤記です。すいません。
データのフォーマット(書式)と書きたかったのです。
perlということで、UNIX絡みと思われたので、エンコードやら何やらと思ったのですが、
>分割インサートしたデータをbcp outして再度bcp inしても同じ現象がでます。
ということから、根本のようですね。
私の現業務でSQL-Serverを利用しておりますが、同様な現象が発生しません。
ちなみに
データ:8万件
カラム数:41フィールド
です。
分割インサートしたデータをbcp outする時に、-tオプションを利用せず、-nでやっても一緒ですか?
perlで編集ができる文字ではなくなってしまいますが、それができないのであれば、環境としての根本的な話になってくると思います。
いろいろとお手数かけましたが、解決しました。
結論からいいますと、マイクロソフトのバグでした。
いろいろと調査した結果、英語版のサポートに修正パッチが公開されていて、それを適用で同様のエラーは発生しなくなりました。
ありがとうございました。
また、質問させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- オープンソース Python openpyxlを使用したセル番地の使用について 1 2023/08/03 22:05
- 携帯型ゲーム機 ニンテンドースイッチについてです。 長文失礼します 今朝までポケモンSVをプレイしていたのですが、突 1 2023/02/12 21:19
- PostgreSQL DBFluteについて質問です。 環境:PostgreSQL java8 前提:webアプリケーショ 1 2022/07/07 00:49
- 電子マネー・電子決済 QUICPayの登録ができない。 4 2023/06/10 10:57
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- 携帯型ゲーム機 ニンテンドースイッチについての質問です。 長文になるかもしれませんがすみません。 お昼頃にSwitc 3 2023/02/12 21:32
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
bcpインサートでのフォーマットファイルの書き方
SQL Server
-
テーブル列数とデータファイル列数の違うbcpインサートをしたい
SQL Server
-
型 varchar から型 numeric への変換エラー。
その他(データベース)
-
-
4
SQLServer sqlcmdが使えない
SQL Server
-
5
オラクルではできるのにSQLSERVERではサブクエリーで複数キーを指定できない?
SQL Server
-
6
バッチファイルからのBCP起動について
SQL Server
-
7
SQL Server 2005 Expressでbcpを行うとエラーになる
SQL Server
-
8
テキストファイルの最終行を削除したいのですが
その他(プログラミング・Web制作)
-
9
BCPユーティリティの使用法_ヘッダー情報の取得_
その他(プログラミング・Web制作)
-
10
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
11
あるテーブルのデータを追加、更新、削除できないようにするには?
SQL Server
-
12
batである文字列内に特定の文字列が含まれているか確認したい
その他(プログラミング・Web制作)
-
13
BCPコマンドのリダイレクト値が空になる
SQL Server
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLserver算術オーバーフロ...
-
bcp in でエラー
-
Access VBAで行ラベルが定義さ...
-
Accessのマクロでモジュールを...
-
Statement ignored というエラー
-
VBA プロシージャの名前の取得
-
ODBCリンクの際にACCESSでは読...
-
SQLサーバで和暦から西暦に変換...
-
callで順に実行されるプロシー...
-
PL/SQLでのSQL文法
-
エクセル 日付による並べ替え...
-
エクセルVBAでUserFormを起動し...
-
sqlplusでヘッダーが付かない
-
Accessでグローバル変数を宣言...
-
SQL*Loaderでのsysdate使用
-
sqlplusのspoolで空白行出現
-
Excelの並び替え(先頭の文字以...
-
PL/SQLで連結(||)と結合(=>)の違い
-
今日の日付が入った行のデータ...
-
ストアド実行時のエラー「参照...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLserver算術オーバーフロ...
-
bcp in でエラー
-
VB.net SqlConnectionでの連続S...
-
DBへのOPENについて
-
ACCESSのVBAでCSVを取込処理に...
-
ストアドプロシージャのRETURN...
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
Statement ignored というエラー
-
ODBCリンクの際にACCESSでは読...
-
sqlplusでヘッダーが付かない
-
Accessの数値から時間に変換す...
-
今日の日付が入った行のデータ...
-
SQLで部分的にGROUP BYしたいとき
-
likeとsubstrの使いわけについて
-
callで順に実行されるプロシー...
-
キャッシュを使わずにSELECTを...
-
VBA プロシージャの名前の取得
-
【Excel VBA】 WorksheetやRa...
おすすめ情報