[DBプログラミング特別企画] 1/3

ExcelデータをOracleに格納する裏技

日本オラクル
宮本 尚志
2005/5/18

企業の部門内に蓄積された大量のExcelデータをデータベースで管理したい。あるいは、Excelで作成した業務書類からシステムに手作業でデータ入力する工数を削減したい。このようなニーズに応えるべく、OracleデータベースにはExcelからOracleへのさまざまな連携機能が備わっている。(編集部)

ExcelとOracleの相性はかなり良好

主な内容
--Page 1--
ExcelとOracleの相性はかなり良好
ExcelデータをXMLに変換してOracleに格納するメリット
事前準備とExcelデータをXML化する2つの方法
--Page 2--
VBAでExcelデータをXML化してOracleに格納する
--Page 3--
Excel 2003でXML化してOracleに格納

 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データをXML化する2つの方法

 今回紹介する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に格納する裏技



Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間