2013年1月8日火曜日

SPOOLの罠【ORACLE】

こんにちは、大阪本社勤務のIです。

前回と同様ORACLEに関することなのですが、
今回はOracle8iとOracle10gの差による、
ちょっとした躓きがありましたので投稿します。

前回お話したとおり、現在、僕が携わっているシステムは、
メインのシステムのデータベースがOracle10g、
サブのシステムのデータベースがOracle8iです。

データの更新はサーバ上でコマンドプロンプトから
SQL Plusを起動して行うのですが、
その際に「SPOOL」コマンドを使用して、
処理内容をファイルに出力し、ログとして残す決まりになっています。

また、メインのシステムはデータ更新の機会が比較的多いのですが、
サブのシステムはデータ更新の機会はほとんどありません。

そんな中、先日サブのデータ更新を行うことになり、
いつもメインで入力しているとおり、
SPOOL "○○○○.LOG" ←と入力しENTERキーを入力すると、
「SP2-0332: スプール・ファイルを作成できません。」と表示されます。

ディレクトリに書き込み権限がないのか?
…などと、いろいろ試みてみましたが、状況は変わりません。

困って上司に尋ねたところ、Oracle8iではファイル名をダブルクォートで囲うと、
このエラーが発生するとのことでした。

その後
SPOOL ○○○○.LOG ←と入力しENTERキーを入力すると、
何事も無かったかのように、ファイルが出力されました。

知っていればどうってことない話ですが、
普段当たり前のように使っていた「SPOOL」コマンドで、
まさかこんな罠があるとは…といった感じでした。

ではまた次回。