
[DBプログラミング特別企画] 1/3
ExcelデータをOracleに格納する裏技
日本オラクル
宮本 尚志
2005/5/18
企業の部門内に蓄積された大量のExcelデータをデータベースで管理したい。あるいは、Excelで作成した業務書類からシステムに手作業でデータ入力する工数を削減したい。このようなニーズに応えるべく、OracleデータベースにはExcelからOracleへのさまざまな連携機能が備わっている。(編集部)
| 主な内容 --Page 1--
--Page 2--
--Page 3--
|
OracleデータベースとMicrosoft Excel(以下、Excel)は、異なる用途に最適化されたアプリケーションです。Oracleデータベースは大量のデータを扱え、同時接続可能で、パフォーマンスや堅牢性に優れたデータベース・サーバです。一方、Excelは個人のデータ管理に適したさまざまなユーザビリティを備えるクライアント・アプリケーションです。ExcelからOracleデータベースのデータを操作できれば両者の持つ利点を最大限に活用できますし、Excelで蓄積した業務データをOracleに移したい場合もあるでしょう。本記事では、ExcelとOracleデータベースを連携させるテクニックを解説します。
OracleデータベースとExcelを連携させる方法を表1にまとめました。
| 連携方法 | メリット | 主な用途 |
| MS Queryを使用 | OracleデータベースのデータをExcelから簡単に抽出可能 | 表のデータ確認、単純なデータ抽出 |
| VBAからODBCなどでOracleデータベースに接続 | VBAのコーディング次第で柔軟な処理(ExcelからOracleデータベースの検索・更新)が可能 | マスタ表メンテナンスなど |
| Oracle Generic Connectivityを使用 | Excelファイルを外部表としてOracleデータベースから使用可能 | Excelファイルからのデータロード |
| KeySQLを使用 | Oracle Databaseに対するExcelからの検索・更新の設定をGUIで簡単に行える | マスタ表のメンテナンス、データ分析など |
| Oracle HTML DBを使用 | Excelデータを基にOracleデータベース内に表や簡易Webアプリケーションを作成可能、Oracle Client不要 | Excelからのデータ・アプリケーション移行 |
| ExcelデータをXMLに変換して格納 | 表形式にしにくいデータもOracleデータベースに格納・検索可能、Oracle Client不要 | Excelからのデータ格納など |
| 表1 OracleデータベースとExcelの連携方法 | ||
本記事では最も手軽な方法として、ExcelデータをXMLに変換してOracleデータベースに格納する方法について紹介します。
■ExcelデータをXMLに変換してOracleに格納するメリット
経費精算や勤怠管理などを社員がExcelシートに記入し提出する、という運用をしている企業は多いですが、多くの場合そのExcelシートを受け取った人が手入力でシステムにデータを打ち込んでいます。打ち間違いもあるでしょうし、人的費用も掛かります。それでもExcelシートからの手入力を続けているのは、そういったデータを表構造にしにくかったり、またExcelからOracleデータベースにアクセスするために必要なOracle ClientをクライアントPCにインストールする手間がかかる、といった事情があると思われます。これらの問題は、Webアプリケーションを導入することで解決できますが、WebブラウザにExcelの操作性や柔軟性を実現するのは容易ではありません。ここでXMLを使った連携を採用すると、Excelを使ったままこれらの問題点を解消することができます。
XMLなら、データを階層構造で表現することで柔軟なデータ構造を持たせることができます。また、テキスト形式で記述できるので、異なるプラットフォーム間でのデータ交換に適しています。ExcelとOracleデータベースも例外ではなく、XMLというインターフェイスを介すことで、容易にExcelデータをOracleデータベースに格納できるのです。XMLなら表構造にしにくいデータも表現することができ、従来リレーショナル・データベースに格納するのが困難だったデータも容易に格納できます。また、XMLデータを格納する際にOracle Clientは不要です。クライアント側はExcelさえあればOracleデータベースにデータを格納できるのです。
今回紹介するExcelとOracleデータベースの連携に必要なものは、ExcelとOracleデータベース(9.2.0.3.0以上)のみです。ただし、「XML DBリポジトリ」という機能を使用します。この機能により、クライアント側にOracle ClientがなくてもWebDAVまたはFTP経由でデータをOracleデータベースに格納できます。XML DBリポジトリはリスナーがHTTP/WebDAVとFTPのポート(デフォルトはそれぞれ8080、2100)を開いていれば使用可能です。図1のように、lsnrctlコマンドにより確認することができます。
![]() |
| 図1 リスナーの使用可能なポートを確認する(画面をクリックすると拡大します) |
この機能はOracleデータベースの標準機能ですので、「Database Configuration Assistant」でデフォルト設定のままデータベースを作成していれば使用可能になっています。使用可能になっていない場合は、OTN(日本オラクルの技術情報Webサイト)の「Oracle XML DB開発者ガイド」(PDF)のA-4ページに設定方法(Oracle XML DBのインストール方法)がありますので、参照してください(ログインが必要ですが、無料で登録可能です)。
ExcelデータをXMLデータに変換する方法はいくつかありますが、ここでは必要なデータのみを比較的簡単にXML化できる、以下の2つの方法で進めていきます。
- VBAでタグとデータを結合し、XML化
- Excel 2003とXMLスキーマを利用してXML形式で保存
(次ページに続く)
| 1/3 |
| Index | |
| [DBプログラミング特別企画] ExcelデータをOracleに格納する裏技 |
|
| Page 1 ・ExcelとOracleの相性はかなり良好 ・ExcelデータをXMLに変換してOracleに格納するメリット ・事前準備とExcelデータをXML化する2つの方法 |
|
| Page
2 ・VBAでExcelデータをXML化してOracleに格納する |
|
| Page
3 ・Excel 2003でXML化してOracleに格納 |
|
| 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 -

