Q104:Oracleのデータを取り込んでCSV形式で保存したいのですが、どうすればよいでしょうか。Oracleのデータ取込に関する仕様の抜粋分をお送りしますので、アドバイス等をお願いします。
A104:
お問い合わせの件ですが、大きく以下の2つの機能に分けられるかと存じます。
(1) Oracleへ接続して検索結果テーブルを取得する。
(2) 取得した検索結果テーブルをCSVファイルとして保存する。
お送りいただいた資料には「対象日付を入力し、それに基づいてOracleからデータを取得する」との記述がございましたが、この部分は(1)の検索実行時のSQL文に、WHERE句として日付条件を追記するだけですので、今の段階では考えないことにいたします。
(1) Oracleへ接続して検索結果テーブルを取得する。
MZ Platform付属のサンプル「データベースアクセス_3(機能拡張版).mzax」を用いてOracleへ接続し、SQL文を実行してOracleからデータを取得する方法についてご説明します。
a) Oracle JDBCドライバのインストール
JDBCドライバー「ojdbc6.jar」を\MZPlatform\Java\jre6\lib\ext内に配置します。ドライバはOracleのHP(要会員登録)、インストールCD等から入手できます。
b) 接続文字列等をOracle用に変更
ドライバ、サーバー、ユーザー名、スキーマ名などご自分の環境に合わせて変更し、お試し下さい。
ドライバ:oracle.jdbc.driver.OracleDriver
サーバー:jdbc:oracle:thin:@ホスト名:ポート番号:SID
(例:jdbc:oracle:thin:@ server1:1521:orcl)
c) データにTIMESTAMP型を含んでいる場合には、型マッピングの兼合い上、文字化けの恐れがあります。防止のための設定をお願い致します。TIMESTAMP型を使用していなければ、必要はありません。
@\MZPlatform\2.5\jarsフォルダ内に添付のjarファイルを配置。
A\MZPlatform\2.5\etcフォルダ内の「PlatformClassPath.ini」ファイルの先頭にjars\oracle_sample080423.jarと記述します。
------このような内容のPlatformClassPath.iniになります--------
# MZ Platform ClassPath
jars\mzpf_dbaccess_patch080430.jar
jars\mzplatform.jar
# MZ Checker ClassPath
jars\MZChecker\mzchecker.jar
--------------------------------------------------------
Bアプリケーションビルダーを一旦終了し、再び立ち上げます。
C アプリケーション内の「アプリケーション開始イベント」に[データベースアクセス]のメソッド:「addPlugin(String)」の処理を追加します。
(2) 取得した検索結果テーブルをCSVファイルとして保存する。
この機能はCSV出力コンポーネントを利用することで作成することができます。その例としましては、MZ Platform付属のサンプルアプリケーション「CSV入出力.mzax」をご覧ください。
ご参考までに、サンプルアプリケーションを2つ掲載しましたので、ご覧ください。いずれも、[接続]ボタンをクリックするとデータベースに接続し、テキストフィールドにSQL文(SELECT文)を記入して[実行]ボタンをクリックすると検索結果がテーブルに表示されます。また、[CSV出力]ボタンをクリックするとファイル保存のためのウィンドウが表示されます。
関連ファイルのうち、「Oracle用データベースアクセス_3(機能拡張版)&CSV出力.mzax」は付属の「データベースアクセス_3(機能拡張版).mzax」に上述の(1)-b)および(1)-c)-Cの設定を行った上で(2)のCSV出力機能を追加したもの、「Oracle用データベースアクセス(簡易)&CSV出力.mzax」はそれをさらに簡略化したものです。
まずは、Oracleからのデータ取得とCSV保存の各機能について、その動作と作り方をご確認いただければと存じます。
関連ファイル:oracle_sample080423.jar、Oracle用データベースアクセス(簡易)&CSV出力.mzax、Oracle用データベースアクセス_3(機能拡張版)&CSV出力.mzax