[DBプログラミング特別企画] 1/3
ExcelデータをOracleに格納する裏技
日本オラクル
宮本 尚志
2005/5/18
企業の部門内に蓄積された大量のExcelデータをデータベースで管理したい。あるいは、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と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に格納する裏技 |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|