今日も終電に間に合わず、妹のところに泊めてもらうことになったのだが、お台場での作業はとりあえず一段落。 夜遅くに帰って寝るだけだった生活も、少しはゆとりってものができるだろう。 暫くは。
俺がこれまでやってきたのは、テスト環境のアップグレード作業。 メーカーが用意したツールを使って、今のシステムをアップグレードするのだが、これがなかなかすっきり行かない。
今日、最後の最後にはまったのは、言語設定。 アップグレード前にデータベースファイルの整合性チェックをするのだが、これがエラーになる。 致命的なエラー。 メーカーに問い合わせたら、 「データベースファイルが壊れているのではないか」 なんて恐ろしいことを言う。 奴等の調査に必要だというデータを取ってから、バックアップからデータベースを復元して、1時間ぐらいかかる作業を最初からやり直し。 そしたらまたエラー。 バックアップもすでに壊れていたんだろうか。 そりゃちょっと洒落にならん事態だな。 でも、じゃあこの作業の前までちゃんと動いていたのは何故? しかも、ツールの中で行うチェック(dbv)を手で実行すると、何のエラーにもならないし。 まさかと思ってアップグレードツールのソースを見たら、dbvが英語環境で返すメッセージを、正常/異常の判定に使っていた。 ところが、今の実行環境は NLS_LANG が日本語に設定されている状態。 dbvの実行結果のメッセージも日本語。 英語しか理解できず 「OK」 という答えを待っている人に、日本語で 「問題ありません」 と言っている状態。 チェックの結果は正常だが、正常であることをツールが判定できないのだった。 なんだかなぁ。 英語しか見ないのなら、スクリプトの先頭で環境変数を英語に設定しておけよ。