企業の部門内に蓄積された大量のExcelデータをデータベースで管理したい。あるいは、Excelで作成した業務書類からシステムに手作業でデータ入力する工数を削減したい。このようなニーズに応えるべく、OracleデータベースにはExcelからOracleへのさまざまな連携機能が備わっている。(編集部)
Excelで見積書や報告書などを作成されている方は多いと思いますが、そういった書類の中には、データベースに格納されている情報が盛り込まれているはずです。例えば、見積書には製品・サービスの価格が、報告書には売り上げデータなどが含まれています。そういった情報を、システムの画面を見ながらExcelに手入力で転記するのは非効率です。Oracleデータベースから直接Excelに取り込むことができれば、作業時間を短縮し、誤入力も回避できます。
書類作成に限らず、データベース内のデータを分析し、グラフ表示したいという場合にも、Excelは便利なツールです。Oracleデータベースから直接Excelにデータを出力できれば、Excel側でグラフを作成するだけで、簡単かつリアルタイムにデータの分析ができます。
第2回の本記事では、OracleデータベースのデータをExcelに出力する方法を紹介します。
OracleデータベースのデータをExcelで取得する方法は、大別すると
の2通りあります。細かく分けるとそれぞれのパターンに非常に多くの方法がありますが、主な方法としては以下のようなものがあります。
連携方法 | メリット | 主な用途 | |
---|---|---|---|
ExcelからOracleデータベースに接続して検索 | Microsoft Queryを使用 | Excelから簡単にOracleデータベースのデータを検索可能 | 単純なデータ参照 |
Excelのマクロを使用 | VBAのコーディング次第で柔軟な検索、更新処理が可能 | Excelを利用した業務アプリケーションの作成 | |
KeySQLを使用 | KeySQLの画面からOracleデータベースを検索し、結果をExcelシートに出力、またはExcelから実行可能なマクロを生成 | マスタ表のメンテナンス、Excelを利用した業務アプリケーションの作成 | |
ファイルを生成しExcelで読み込む | SQL*PlusのSpoolコマンドでCSVファイルに出力 | コマンドラインでの一括処理が可能 | CSVファイルの生成 |
KeySQLを使用 | GUI操作でCSV出力可能 | CSVファイルの生成 | |
Oracle BI Discovererを使用してxlsファイルを生成 | GUI操作でOracleデータベースのデータをリアルタイム分析し、作成した表をxls形式で出力 | 分析結果のxls形式での配布 | |
表1 ExcelでOracleデータベースのデータを取得する方法 |
今回の記事では、Excelから直接かつリアルタイムにデータを取得できる、最初の3つの方法について紹介します。
Microsoft Query(以下、MS Query)は、主にExcelに対して外部ソースからデータを取り込む、Microsoft Office付属の機能です。ウィザードに従って操作するだけで、簡単にOracleデータベースのデータを検索し、Excelシート上に出力させることが可能です。
MS Queryを使用するためには、いくつか設定が必要です。まず、Excelを動かすクライアント側にはOracle Clientがインストールされ、Oracleデータベースに接続するための設定が完了している必要があります。さらに、MS Queryのインストール、ODBCデータソースの設定が必要です。
MS Queryの設定方法、使用方法については、@IT記事「Excelと外部データベースとを連携させる」を参照してください。ただし、この記事ではSQLServerに接続する場合の設定方法を記載しているため、設定が一部異なります。Oracleデータベースに接続する場合、「新規データソースの作成」ダイアログの「接続」ボタンを押下して表示されるダイアログには、以下の情報を入力してください。
サービス名 | クライアントのtnsnames.oraで定義している接続識別子(※) |
---|---|
ユーザー名 | Oracleデータベースユーザーの名前 |
パスワード | Oracleデータベースユーザーのパスワード |
設定を終えれば、マウス操作でOracleデータベースのテーブルからデータを検索し、検索結果を表の形でExcelシート上に貼り付けることができます。MSQueryでは、単純な検索処理であれば簡単に実行することができます。ただし、より複雑な検索(Oracleデータベースの関数を使用した検索など)をGUI操作のみで行うことはできません。更新処理を行うこともできません。また、ユーザー部門の人に使ってもらうには操作が少し難しいかもしれません。
もっとエンドユーザーが簡単に検索でき、さらに高度な検索もしたいという場合は、Excelのマクロの中でOracleデータベースへの接続・検索の処理を記述することになります。(次ページに続く)
Copyright © ITmedia, Inc. All Rights Reserved.