スキーマオブジェクトに日本語を使うのを止めよう。

今は良いかもしれない。
でも、将来にわたって正常に動作する保証はない。

昨日、茨城県某所で暫定稼働中のシステムに発生した事件。
TABLE定義・VIEW定義がマルチバイト文字を含む構成であったため、OEMから再コンパイルが出来ない状態だった。
もちろんコマンドラインからはコンパイルできる。
ついでに言えばObject Browserでもコンパイルは可能であった。
要はOEMJava-APであり、DDLにマルチバイト文字が含まれていたため、Unicode変換で問題が出ていたのであった。
このことだけによらず、Oracleの用意している純正周辺ツールは、マルチバイトにきちんと対応しているものではないことは明白だ。
もちろん、マルチバイト文字をデータとして適切に格納することには何の問題もない。
要はマルチバイト文字でスキーマ名・スキーマオブジェクト名を定義するな。
ただそれだけだ。
この問題は「ダブルクォート」でエスケープすれば解決するような問題ではない。

今更ながらではあるが、Oracleを採用するシステムで、マルチバイト文字でスキーマ名・スキーマオブジェクト名を定義しないよう、啓蒙していきたい。