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

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

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

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

SQL Server

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

SQL

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

Q&A

解決済

1回答

5936閲覧

BULK INSERTでCSVファイルをDBに追加したい

kuronoss

総合スコア14

CSV

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

SQL Server

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

SQL

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

0グッド

0クリップ

投稿2020/05/18 01:01

文字コードsjisのsample.csvの中身をTRUNCATE後、BULK INSERTでtableに追加するSQLを作成しているのですが、以下のエラーが解決できずにおります。

「行 2、列 4 (カラム3) の一括読み込みデータ変換エラー (型の不一致または指定されたコードページでは無効な文字)。」

エラーメッセージを読むとカラム3の型変換に失敗しているように見えるのですが、
対処方法がわかりません。お手数ですがご教授頂けると助かります。

実行環境:SQLServer2014


【[test].[dbo].[table]のCreate情報】
カラム1 nvarchar(10)
カラム2 nchar(3)
カラム3 datetime
※いずれのカラムもNULLを許容


【format.fmt】
12.0
4
1 SQLCHAR      0  0   """     0   DUMMY   Japanese_CI_AS
2 SQLCHAR      0  10  "",""   1  カラム1  Japanese_CI_AS
3 SQLCHAR      0  10  "",""   2  カラム2  Japanese_CI_AS
4 SQLDATETIME  0  30  ""\r\n"  3  カラム3 ""


【sample.csv】
"カラム1","カラム2","カラム3"
"11111","A01","20-05-15"
"22222","B01","20-05-16"


【実行SQL.sql】
USE [test]
GO

TRUNCATE TABLE [test].[dbo].[table]

BULK INSERT [test].[dbo].[table]
FROM 'C:\sample.csv'
WITH (FIRSTROW = 2, FORMATFILE = 'C:\format.fmt')
GO

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

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

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

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

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

guest

回答1

0

ベストアンサー

formatとCSVのカラム数が一致していないからじゃないでしょうか

投稿2020/05/18 02:17

sazi

総合スコア25327

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

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

kuronoss

2020/05/18 02:25

CSVファイルは全て"で囲まれているのですが、DBには"を削除して登録しないといけないため、CSVファイルの最初の"を捨てて区切り文字を","にして改行を"+改行文字にしているつもりなのですが、どこか間違えているでしょうか?
sazi

2020/05/18 02:47

ああ、"区切りなのですね。 であれば、最後のSQLDATETIME だから変換エラーなのでしょう。 SQLCHAR に変更してみてください。
kuronoss

2020/05/18 02:50

解決しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問