質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Q&A

1回答

16988閲覧

SQLServer テーブルCSV書き出し時エラー

Alice0225

総合スコア206

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

0クリップ

投稿2017/05/16 04:30

編集2022/01/12 10:55

現在、SQLServer上に存在する既存テーブルから、少し仕様の変わった新テーブルへの移行作業を行っています。
【使用環境】
Windows7 32bit
SQLServer 2014

【やっていること】
該当データベース→タスク→データのエクスポート
データソース SQL Server Native Client 11.0
変換先 フラットファイル変換(CSV出力)

上記方法にてDB内テーブルのCSV出力を行いたいのですが、テーブル内に環境依存文字が使われているレコードがあり、出力時にエラーとなります。

列データ型
nvarchar(50)

エラーとなっている文字
ㇿ(カタカナの「ろ」の環境依存文字)

出力されるエラー内容

エラー 0xc02020a1: データ フロー タスク 1: データ変換に失敗しました。列 "MAN_NAME" のデータ変換から、状態値 4 と状態を示すテキスト "テキストが切り捨てられたか、または対象になるコード ページで 1 つ以上の文字が一致しませんでした。" が返されました。

(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc02020a0: データ フロー タスク 1: 列 "MAN_NAME" のフラット ファイル データをコピーまたは変換できません。

(SQL Server インポートおよびエクスポート ウィザード)

エラー 0xc0047022: データ フロー タスク 1: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。入力 "フラット ファイル変換先の入力" (41) の処理中に、コンポーネント "変換先 - table.csv" (40) の ProcessInput メソッドがエラー コード 0xC02020A0 で失敗しました。このコンポーネントは、ProcessInput メソッドからエラーを返しました。このエラーはコンポーネントに固有のものですが、致命的なエラーであるため、データ フロー タスクの実行は停止されます。このエラーの前に、エラーの詳細が記載されたエラー メッセージが報告されている可能性があります。

(SQL Server インポートおよびエクスポート ウィザード)

出来ればテーブル内データを修正(今回でいうとㇿ→ロにすると正常に出力されます)しない方向で環境依存文字を含めて無事に出力させるにはどのような方法が考えられますでしょうか。

[2017/05/17 09:23 hidoriさんご回答に対する返信用にCSV出力時のウィザード画面追記]
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

出力 CSV の文字エンコーディングには何を指定してますか?

出力 CSV に指定した文字エンコーディングで表現できない文字を含んでいるなら、CSV 出力の事前もしくは逐次に表現不可な文字を削除したり、表現可能な文字に変換する必要があります。

投稿2017/05/16 10:45

編集2017/05/16 11:45
hidori

総合スコア402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Alice0225

2017/05/17 00:25

ご回答ありがとうございます。 CSVの文字エンコーディングはShift-JISを指定しておりました。 昨日の作業時は気づかなかったのですが、プルダウン内にUnicodeという欄がなくどうしたものかと思っていたのですがプルダウン外にUnicodeを指定するチェックボックスが存在した為、チェックして実行したところ環境依存文字含め問題なく出力が完了したように見えます(内部データの整合性を現在念のためチェックしています) 無知で申し訳ないのですが、この方法による出力は問題ないものなのでしょうか? (質問の最下部にウィザードの画面イメージを追記させて頂きました。)
hidori

2017/05/17 02:18

>この方法による出力は問題ないものなのでしょうか? 問題があるかどうかは要件次第ではないかと。。 Unicode にチェックを入れたとしても、出力データが壊れたりとかはないと思います。(UI がヘンテコだとは思いますが) 出力ファイルの文字エンコーディングが Unicode で問題ないのなら問題ないんじゃないかと思いますが、具体的にどういった点を懸念されているんでしょうか?
Alice0225

2017/05/17 05:13

文字エンコーディングに関する知識が拙く、重ね重ねの質問となってしまい大変申し訳ございません。 CSVへ出力する際、文字エンコーディングをUnicodeにすることで環境依存文字である「ㇿ」が出力出来ることは確認が出来たので安心なのですが、他の文字に関して逆にShift-JISから変えたことによる変化がないか、という点を危惧しておりました。 出力された内容と出力元となるDBテーブルの内容を照らし合わせたところ差異が見られない為、結論でいうと問題ないものと認識致しました。
hidori

2017/05/17 12:52

>他の文字に関して逆にShift-JISから変えたことによる変化がないか、という点を危惧しておりました。 ↑でも書いてますが * エクスポート元のテーブルの文字エンコーディングが何か * エクスポート字の文字エンコーディングは何か が重要です。両者が異なっていれば何らかのマッピングが発生する可能性があり、問題が生じる可能性があります。 両者が一致していないなら、それぞれの文字エンコーディングの特徴を踏まえて、エクスポート時にどんな問題が生じるかを考えて、必要な措置をとる必要があります。
hidori

2017/05/17 13:01

>両者が異なっていれば何らかのマッピングが発生する可能性があり、問題が生じる可能性があります。 例えば、マッピング不可能な文字が含まれている場合 * エクスポート処理が停止する * 代替え文字にマッピングされる などの問題を生じることが考えられます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問