
Excel‐Oracle連携(1) Page 1/3
ExcelデータをOracleに格納する3つの手法
日本オラクル
宮本 尚志
2005/7/8
企業の部門内に蓄積された大量のExcelデータをデータベースで管理したい。あるいは、Excelで作成した業務書類からシステムに手作業でデータ入力する工数を削減したい。このようなニーズに応えるべく、OracleデータベースにはExcelからOracleへのさまざまな連携機能が備わっている。(編集部)
| 主な内容 --Page 1--
--Page 2--
--Page 3--
|
OracleデータベースとExcelを組み合わせれば、Excelで入力したデータをOracleデータベースに格納したり、Oracleデータベース内のデータをExcelで参照、変更することができます。小規模なシステムでは、Excelをフロントアプリケーションとして使用することで、ユーザー・インターフェイスの開発を最小限に抑えられますし、利用する側も使い慣れたExcelのインターフェイスを使用できます。また、データ量や利用者数の拡大に伴い、データをExcelで管理するのが困難になることもあります。そのような場合には、ExcelのデータをOracleデータベースに移すことも可能です。
本連載では、ExcelとOracleデータベースを連携させる方法にどのようなものがあるのか紹介します。第1回の本記事では、ExcelデータをOracleデータベースに格納する方法について取り上げます。
ExcelデータをOracleデータベースに格納する方法は数多くあります。表1にそれらの方法をまとめました。それぞれに特徴がありますので、用途に合わせて使い分けることになります。
| 連携パターン | メリット | 主な用途 |
| SQL*Loaderを使用 | 大量のCSVファイルから高速にデータをOracleデータベースに格納可能 | 大量データ/ファイルからの一括ロード |
| Oracle HTML DBを使用 | Excelの表形式データを基に、Oracleデータベース内に表や簡易Webアプリケーションを作成可能、Oracle Client不要 | 個人管理のExcelファイルからのデータロード、Webアプリケーションへの移行 |
| Oracle Generic Connectivityを使用 | Excel(.xls)ファイル内の表形式データを外部表のようにOracleデータベースから使用可能 | 複数人で共有しているExcelファイルからのデータロード |
| KeySQLを使用 | Oracleデータベースに対するExcelからのINSERTの設定をGUIで行える | マスタ表のメンテナンス |
| VBAでODBCなどを使いINSERT文発行 | VBAのコーディング次第で柔軟な処理が可能 | Excelを利用した業務アプリケーション |
| ExcelデータをXML化してOracleデータベースに格納 | 表形式でないExcelデータをOracleに格納可能、Oracle Client不要 | 表形式にしにくいデータのOracleデータベースへの保存 |
| 表1 ExcelデータをOracleデータベースに格納する方法 | ||
本記事では、このうちSQL*Loader、Oracle HTML DB、Oracle Generic Connectivityについて紹介します。KeySQLを使う方法とODBCなどを使用する方法については、今後の連載で紹介します。ExcelデータをXML化してOracleデータベースに格納する方法については、特集記事「ExcelデータをOracleに格納する裏技」を参照してください。
また、本連載では触れませんが、Excel(.xls)ファイルをバイナリファイルとしてデータベースのBLOB型の列に格納する方法もあります。その場合、Oracleデータベース側でExcelデータを活用することはできませんが、Oracle Content Management SDK(CMSDK、旧iFS)、Oracle XML DBリポジトリ(Oracle XML DB)といった機能を使用すれば、Oracleデータベースをファイルサーバとして使用できます。Oracleデータベースを使用したファイル管理アプリケーションも数多く存在するので、それらを利用してもExcelファイルなどをバイナリファイルとしてOracleデータベースに格納することが可能です。
SQL*Loaderは、外部ファイルのデータをOracleデータベースの表に取り込むユーティリティで、Oracleデータベースに標準で付属しています。このツールにより、CSVファイルからデータを読み込み、Oracleデータベースの表に書き込むことができます。データベース・サーバ、またはOracle Clientをインストールしたクライアント端末から使用可能です。
SQL*LoaderではSQL*PlusなどからINSERT処理をするよりも高速にデータをテーブルに書き込むことが可能です。従って、大量データを一度にロードするバッチ処理には最適です。
手順
SQL*Loader自体はコマンドライン・ユーティリティであり、以下のようなコマンドを実行することでデータをロードします(Oracle Enterprise Managerなど、GUI操作でSQL*Loaderのコマンドを発行できるツールもあります)。
C:\> sqlldr scott/tiger
control=test.ctl direct=true parallel=true |
このコマンドを見ても分かるように、どの表にどんなデータをロードするかは、制御ファイル(Oracleデータベースの制御ファイルとは異なります)という別のファイルに記述しておきます。ここでは、test.ctlというファイルが制御ファイルで、その中身は以下のようなものです。
LOAD DATA |
| リスト1 SQL*Loader用の制御ファイル |
ここでは、カンマで区切られたtest.csvの中身をanken表にロードする、という内容を記述しています。test.csvは以下のようなファイルです。
1,大森,悠久電子工業(株),300000,OR-002,20,提案中, |
| リスト2 SQL*Loaderで読み込むCSVファイル |
このように、CSVファイル、制御ファイルを用意すれば、簡単なコマンドでデータをOracleデータベースにロードできます。
制御ファイルの記述が難しい、と思う方もいるかもしれませんが、制御ファイルをGUI操作で生成可能なツール(Oracle Warehouse Builderなど)を利用すれば、制御ファイルを手入力で作成する必要はありません。
もっと簡単にExcelデータをOracleデータベースに格納したいという場合は、次に紹介するOracle HTML DBを使う方法があります。(次ページに続く)
| 1/3 |
| Index | |
| Excel‐Oracle連携(1) ExcelデータをOracleに格納する3つの手法 |
|
| Page 1 ・はじめに ・ExcelとOracleの連携パターン ・SQL*Loaderを使用する方法 |
|
| Page
2 ・Oracle HTML DBを使用する方法 |
|
| Page
3 ・Oracle Generic Connectivityを使用する方法 ・まとめ |
|
| Excel‐Oracle連携 |
TechTargetジャパン
- やはりSELECT文は永遠のテーマです (2012/2/7)
Database Expertフォーラムの2012年1月のアクセスランキングをお届けします。定番の記事を一気に追い抜いてあの記事が…… - SELECT文で取り出したデータを加工して表示する (2012/1/25)
SELECT文で取り出したデータを対象に四則演算する方法など、データを見やすくする方法を解説します - 2012年は私たちが勉強会を盛り上げる! (2012/1/23)
2011年12月、データベース業界初の女子会が発足しました。そこで、女子会を盛り上げていってくれそうな2人にお話を伺いました - 複数の条件を指定してSELECT文を実行する (2012/1/13)
複数の条件を指定してSELECT文を実行する方法と、条件指定に必要な論理演算子、比較演算子の役割を解説します
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
