無料の「Oracle Database XE」で高速バッチ処理:実装のポイント
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のユーティリティ画面にゴミ箱がある。
この「ごみ箱」機能に[削除されたオブジェクト]と[ごみ箱を空にする]という2つのアイコンがあります。
「削除されたオブジェクト」(左のアイコン)と「ゴミ箱を空にする」。
リサイクルビンに残さずテーブルを削除するには、次のように実行することで可能です。
SQL> DROP TABLE テーブル名 PURGE;
次のSQL文をデータベースの管理者ユーザーで実行すると、リサイクルビンが無効になります。
SQL> ALTER SYSTEM SET RECYCLEBIN=OFF;
リサイクルビンを有効にするには次のSQL文です。
SQL> ALTER SYSTEM SET RECYCLEBIN=ON;
- ホワイトペーパー



