KeySQLは、Oracleデータベースのデータを検索してExcelに出力したり、ExcelからOracleデータベースのデータを更新できるGUIツールです。KeySQLを使用すれば、簡単な操作で、複雑な検索も行うことができます。KeySQLを使用する検索方法は2通りで、KeySQLのGUIを使用して検索する方法と、KeySQLでVBAから実行可能なマクロを生成し、それを使用してExcelから検索する方法があります。
この方法では、Oracle ClientとKeySQLがクライアント側にインストールされている必要があります。KeySQLはOracleデータベースとは別に購入する必要がありますが、体験版をダウンロードして試すことも可能です。
前述のとおり、KeySQLはGUIツールであるため、GUI画面からマウス操作でOracleデータベースのデータを検索することが可能です。以下のようなGUIから検索を行うことになります。
検索結果をどこに出力するかは、画面上部で指定することになります。Excelシートに出力する場合、どのブックの、どのシートの、何行何列目か、という指定が可能です。Excelシートに出力せず、CSVファイルや、表形式のHTMLファイルとして出力することも可能です。
複数の表の結合や、グループ関数を使用した検索なども、マウス操作で行うことができます。また、実際にどのようなSQL文が実行されるかを確認したり、SQL文を手入力して実行することも可能なので、KeySQLから実行されたSQL文を一部書き換えて実行するというようなことも可能です。また、KeySQLを使用すると、Oracleデータベースの表を基にクロス集計を非常に簡単に行うこともできます。あらかじめExcelシート側でグラフの設定などを行っておけば、検索結果がExcelシートに出力されると同時にグラフが自動表示される、ということも可能です。
マウス操作で検索できるのは便利ですが、定型的な検索などをKeySQLの画面上で毎回行うのは面倒です。同じ処理を繰り返し実行するような場合は、KeySQLでの操作をマクロ化して使用することが可能です。KeySQLの画面から、「ファイル」→「マクロファイルに保存」を選択することで、KeySQLでの操作をマクロ化し、KeySQLで読み込んだり、Excelのマクロに組み込んで実行することも可能です(図2)。マクロに保存する際にさまざまなオプションを指定することができますが、Excelのマクロに組み込んで使用する場合は、「作成方法」内の設定を図2のように選択しておくと便利です。
図2のオプション設定でマクロを生成すると、Excelから直接実行可能なVBAのプロシージャ(リスト4)と宣言部が生成され、クリップボードにコピーされます。後は宣言部をExcelマクロの標準モジュールとして入力し、リスト4のマクロをExcelから実行するだけで、Oracleデータベースに対して検索処理が行われ、結果をExcelシート上に取得することができます。
'宣言部は省略 |
リスト4 KeySQLから生成されるマクロ(表示の都合で改行されています。コードはlist04から確認できます) |
このように、GUI操作のみで簡単にマクロを生成することができ、生成されたコードはまったく変更せずにExcelから実行可能です。本記事掲載時点で最新版のKeySQL R5.1を使用すると、リスト4のようにマクロ内にコメントも出力されるので、コードの編集も容易です。
KeySQLでは、このようにGUI操作での検索を行うことも可能ですし、マクロを自動生成することも可能なので、システム管理者はKeySQLのGUIを操作し、ユーザー部門はExcelでKeySQLから生成されたマクロを使用する、という使い分けが可能です。検索のみならず更新も可能です。
さらに、KeySQL R5.1では、データベース内の表を誤って更新してしまっても過去の状態に戻すことができる「フラッシュバック・テーブル」機能をマウス操作で行えたり、Excelを使わなくても表のデータを確認・変更することができます。マスタ表のメンテナンスには最適なツールといえます。
いままで見てきたように、さまざまな手法を用いることで、ExcelからOracleデータベースのデータを取得することが可能です。これは非常に便利である半面、セキュリティが問題になることもあります。Excelでデータを取得できてしまうと、そのデータをメディアに保存して持ち出すことも容易です。データ取得者に悪意がなくても、PCがウイルスに感染してしまうと、ローカルディスクに保存していただけで情報が漏えいする可能性もあります。
これらのリスクを最小限にするためには、クライアント側、データベース・サーバ側両方で対策が必要になります。クライアント側では、Excelシートの保存、コピー&ペースト、印刷の禁止といった対策や、そもそもローカルディスクを持たないシンクライアントの使用などが考えられます。
データベース・サーバ側では、厳密なアクセス制御、ユーザー情報管理の徹底、監査の実施などを検討する必要があります。Oracleデータベースにはこれらを実現する機能が実装されているので、適切に設定をしてセキュリティ対策を施すことが重要です。
今回はExcelからOracleデータベースのデータを取得する方法を紹介しました。次回はExcelからOracleデータベースのデータを更新する方法について紹介します。ご期待ください。(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.