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 技術サポート情報一覧]
|