- - PR -
bcpでテキスト型の入出力
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2006-07-19 17:31
現在開発中のシステムでテスト環境で使用しているデータを、
客先に持って行き使用する為にbcpでの入出力をしています。 テキスト型のフィールドではうまく動作しないしません。 やっている内容は、出力→データ削除→入力の順で行います。 入力時にエラーがあるので、困っています。 エラーの内容は SQLState = 22003, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]数値が範囲を超えています。 SQLState = S1000, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]Text 行のデータが不完全です。 テーブルの内容は以下のとおりです。 [ID] [numeric](4, 0) NOT NULL [タイトル] [varchar] (80) NOT NULL [text1] [text] NULL [text2] [text] NULL [text3] [text] NULL [text4] [text] NULL フォーマットファイルは 8.0 6 1 SYBCHAR 0 19 ",¥"" 1 ID "" 2 SYBCHAR 0 80 "¥",¥"" 2 タイトル "" 3 SQLTINYINT 0 8000 "¥",¥"" 3 text1 Japanese_CS_AS_KS_WS 4 SQLTINYINT 0 8000 "¥",¥"" 4 text2 Japanese_CS_AS_KS_WS 5 SQLTINYINT 0 8000 "¥",¥"" 5 text3 Japanese_CS_AS_KS_WS 6 SQLTINYINT 0 8000 "¥"¥r¥n" 6 text4 Japanese_CS_AS_KS_WS コマンドラインは bcp [DBName].[OwnerName].[TableName] out .¥out.txt -f ..¥format.fmt -U userName -P pass bcp [DBName].[OwnerName].[TableName] in .¥out.txt -f ..¥format.fmt -U userName -P pass 以上ですアドバイスよろしくお願いします。 | ||||
|
投稿日時: 2006-07-20 01:59
すみません、素朴な疑問なんですが、何で3〜6のストレージ型はSQLTINYINTなんですか? TEXT型ならSQLCHARでいいかと思ったんですが。 #参照 「bcp を使用したファイル ストレージ型の指定」 http://msdn2.microsoft.com/ja-jp/library/ms189110.aspx 同じテーブルを作成し、ためしにフォーマットを出してみたら TEXT型に対してはSQLCHARで出ましたよ。 _________________ 夏椰 @ わんくま同盟 夏椰の庵 Microsoft MVP for Windows Server System - SQL Server ( Jul 2006 - Jun 2008 ) | ||||
|
投稿日時: 2006-07-20 08:46
出来ました、ありがとう御座います。
問題はフォーマットの指定だったようです。 ご指摘どうりSQLTINYINTをSQLCHARに直したらうまくいきました。 SQLTINYINTにした理由はSYBCHARでうまくいかなかったので、bcpに出力が指定したフォーマットでやらないと、駄目なのか?と思い指定しました。 | ||||
1
