無料の「Oracle Database XE」で高速バッチ処理:実装のポイント

兒玉敏幸(101)
2008-07-24 17:00:00
  • このエントリーをはてなブックマークに追加

1-6. コードの自動生成

 分解した処理単位がコンポーネントとして汎用的に使えるものであれば、それらのSQL文を自動生成できると、さらに開発効率やメンテナンス性が向上します。

 では自動生成するにはどうしたら良いでしょうか?

 処理内容は同じでもデータの構造や名前が異なるため、様々なデータを取り扱うためにはテーブル名やカラム名を外から指定でき、それに合わせたSQL文を出力する仕組みがあれば自動生成できるようになります。

 ワン・オー・ワンの製品「101will」は、今回ご説明したような思想で実装されています。101willには無償版の「101will FREE Edition」もありますので、是非使ってみてください。

2. おまけ

 Oracleデータベースは10g以降、人為的なエラーを回復するためにフラッシュバック機能を備えています。リサイクルビンというゴミ箱のような機能があるのですが、Oracle XEではユーザーデータを格納する記憶域が4GBまでに制限されていますし、テスト環境などでこのような機能がいらないようでしたら、リサイクルビンを停止することを検討してみてください。

2-1. リサイクルビンの停止

 SQL*Plusで次のようにテーブルの一覧を確認してください。

SQL> SELECT TNAME FROM TAB;

 テーブルの削除を行ったことがあれば、「BIN...」といった変な名前のテーブルが出てきたと思います。これはリサイクルビン機能が効いているからです。その中身の確認は次のように行います。

SQL> SHOW RECYCLEBIN

 完全にテーブルを削除するにはPURGE文を実行する必要があります。

SQL> PURGE USER_RECYCLEIBN;

 リサイクルビンがパージされました。

 Application Express(APEX)でも確認や削除ができます。

 [ホーム]−[ユーティリティ]の中に[ごみ箱]アイコンがあります。

Application Expressのユーティリティ画面にゴミ箱がある。 Application Expressのユーティリティ画面にゴミ箱がある。

 この「ごみ箱」機能に[削除されたオブジェクト]と[ごみ箱を空にする]という2つのアイコンがあります。

「削除されたオブジェクト」(左のアイコン)と「ゴミ箱を空にする」。 「削除されたオブジェクト」(左のアイコン)と「ゴミ箱を空にする」。

 リサイクルビンに残さずテーブルを削除するには、次のように実行することで可能です。

SQL> DROP TABLE テーブル名 PURGE;

 次のSQL文をデータベースの管理者ユーザーで実行すると、リサイクルビンが無効になります。

SQL> ALTER SYSTEM SET RECYCLEBIN=OFF;

 リサイクルビンを有効にするには次のSQL文です。

SQL> ALTER SYSTEM SET RECYCLEBIN=ON;
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]