MSDE FunClub
Microsoft Data Engine FunClub
MSDE初心者向けメーリングリスト過去ログ[670]番
 
[TOP]>[MSDE初心者向けメーリングリスト過去ログ(670番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: インポートエラー

Date: Tue, 3 Jun 2003 12:51:16 +0900
From: "koyama" <koyama@kensui.on.arena.ne.jp>


小山といいます。
堀川さんわざわざ調べていただきありがとうございました。

実際には、BULK INSERT文の後に
=======================================================
UPDATE #データT
SET 課係コード=CASE 課係コード
   WHEN 'A1' THEN 11
               ・
               ・
   WHEN 'N1' THEN 111
 END
GO

--販売データTへデータ入力(グループ化して)
INSERT INTO 販売データT(処理日,荷主コード,課係コード,品名コード)
 SELECT 処理日,荷主コード,CAST(課係コード AS int),品名コード
 FROM #データT
 GROUP BY 処理日,荷主コード,課係コード,品名コード
GO

--販売明細Tへデータ入力---------------------------------
INSERT INTO 販売明細T(販売ID,買受人コード,売上キロ数,売上金額)
 SELECT A.販売ID,B.買受人コード,B.売上キロ数,B.売上金額
 FROM 販売データT AS A INNER JOIN #データT AS B ON A.処理日=B.処理日 AND A.
荷主コード=B.荷主コード AND A.課係コード=B.課係コード AND A.品名コード=B.品
名コード
GO
======================================================
というふうに二つのテーブルにデータを書きこんでいきます。
エラーをチェックするために、コメントアウトしていましたが、こ
れらを一連でプログラムを走らせるとうまくインポートできました。
なぜエラーが出たのかは良くわかりませんでした。

本当は、フォーマットファイルを使ってインポートしたいのですが、
以下のようなフォーマットファイルを使うとエラーメッセージが出てきます。

フォーマットファイル=======================================
7.0
10
1 SQLCHAR 0 10 ","  1 課係コード
2 SQLCHAR 0 20 ","  2 処理日
3 SQLCHAR 0 10 ","  3 荷主コード
4 SQLCHAR 0 10 ","  4 買受人コード
5 SQLCHAR 0 10 ","  5 品名コード
6 SQLCHAR 0 40 ","  6 売上金額
7 SQLCHAR 0 10 "," 7 売上キロ数
8 SQLCHAR 0 40 "," 8 原票番号
9 SQLCHAR 0 10 "," 9 行NO
10 SQLCHAR 0 10 "\r\n" 10 事故伝NO
=======================================================

BULK INSERT文=========================================
CREATE TABLE #データT (
 課係コード [varchar](10) NULL,
 処理日 [datetime] NOT NULL,
 荷主コード [int] NULL,
 買受人コード [int] NULL,
 品名コード [int] NULL,
 売上金額 [int] NULL,
 売上キロ数 [float](24) NULL,
 原票番号 [money] NULL,
 行NO [smallint] NULL,
 事故伝NO [varchar](4) NULL
)
GO
BULK INSERT #データT FROM  'I:\共用\Tenp\Hnmeis1.csv' WITH (FORMATFILE='I:\
共用\Tenp\hanbaidata2.fmt')
GO
========================================================

エラーメッセージ==========================================
C:\Program Files\Microsoft SQL Server\80\Tools\Binn>osql -S KNS01SV -U
sa -P -n
-i C:\sqlpro\genpyou3.sql
メッセージ 4829、レベル 16、状態 1、サーバー KNS01SV、行 4
一括挿入できませんでした。フォーマット ファイル 'I:\共用
\Tenp\hanbaidata2.fmt'
内の転送元列 10
の転送先テーブル列名が不正です。
==========================================================
不思議なのがどう見ても転送元列10の"事故伝NO"と転送先テーブル
"事故伝NO"は同じにしているのですが、何が違うのかがよくわかりません。

もし分かれば教えてください。
コードをごちゃごちゃと書いて分かりにくいかとも思いますが、
よろしくお願いします。

CSVデータ
==========================================================
A1,20030526,1262,48,531,-360,-1.8,9052900804,1,J
I1,20030526,2920,672,3081,-21000,0,9052900807,1,J
I1,20030526,2920,675,3081,21000,0,9052900807,2,J
A2,20030527,4031,28,804,-1360,-3.4,9052900805,1,J
B2,20030527,3048,686,1819,-12367,0,9052900803,1,J
B2,20030527,3048,666,1819,12367,0,9052900803,2,J
B2,20030527,3048,30,1819,-5293,0,9052900806,1,J
B2,20030527,3048,60,1819,5293,0,9052900806,2,J
==========================================================




[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。