MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

SQL Serverでスラッシュ(/)を含むテーブル列をインポートする方法|BCPユーティリティの活用

SAPなどの外部データベースからエクスポートされたテーブルでは、列名に「/」(スラッシュ)が含まれているケースがあり、そのままSQL Serverへインポートしようとするとエラーが発生することがあります。このような場合におすすめなのが、BCP(Bulk Copy Program)ユーティリティを使ったデータのインポート・エクスポートです。

BCPユーティリティとは

BCPはSQL Serverに標準搭載されているコマンドラインツールで、テーブルとテキストファイル(フラットファイル)間で大量のデータを高速にやり取りできます。テキストファイルを仲介することで、特殊文字を含む列名による問題を回避できるのが大きなメリットです。

テーブルのデータをテキストファイルへエクスポートする

まず、対象テーブルのデータをいったんテキストファイルに出力します。以下のコマンドを実行してください。

BCP Db.TN out "テキストファイルの場所" -c -S サーバー名 –T

「out」オプションを指定することで、テーブルの内容が指定した場所のテキストファイルへ書き出されます。

テキストファイルからSQL Serverへデータをインポートする

次に、書き出したフラットファイルからSQL Serverへデータを読み込みます。その場合は「in」オプションを使用します。

BCP Db.TN in "テキストファイルの場所" -c -S サーバー名 –T

これで、テキストファイル内のデータが指定したテーブルへ一括登録されます。

マッピング編集による対処も有効

フラットファイルからデータを読み込む際には、列の対応付け(マッピング)を編集することも可能です。マッピング画面でインポート先の列を適切に関連付けることで、元の列名に「/」が含まれていても問題なくデータを取り込める場合があります。

SQL Serverでスラッシュ(/)を含むテーブル列をインポートする方法|BCPユーティリティの活用

  1. JavaでMySQLデータベースのテーブルから最後のレコードを取得する方法

    MySQLデータベースからデータを取得するには、JavaのexecuteQuery()メソッドを使用します。本記事では、テーブルに登録された最後のレコード(最新の1件)をJavaプログラムで取得する手順を、サンプルコード付きでわかりやすく解説します。1. MySQLデータベースにテーブルを作成するまず、MySQLデータベース上にテーブルを用意します。ここでは「sample」データベースに、以下のようなテーブルを作成します。mysql> create table javaGetDataDemo -> ( -> Id int NOT NULL AUTO_INCREMENT PRI

  2. JavaでMySQLテーブルのカラム数を取得・カウントする方法

    MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。前提:サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。mysql> create table DemoTable     -> (     -> St