oracle xeのSJIS化とAPEXのEPGによる再導入

oracle xeのデフォルト導入ではdatabaseはUTF8のキャラクターセットとなる。

  SJISで作られた他のDBからデータを持ってこようとすると、データ長が超えることにより、インポートできない場合がある。

  そのため、databaseをSJISで作り直す場合、デフォルトで導入されているApplication express(通称 Apex)の再導入を行う必要がある。

  databaseの再作成は、XEの導入後、database、リスナーを停止させた後、

    ① createdb.bat -dbchar JA16SJISTILDE

で再作成できる。

その後、apex(筆者の場合、5.0.4を対象)を導入

  apexの導入したディレクトリーで

     ②plsql / as sysdba

         @apexins sysaux sysaux temp /I/

     ③@apxchpwd

      ④database、listenerの再起動

      ⑤plsql / as sysdba

          @apex_epg_config c:¥oraclexe¥app¥oracle(apexを展開したディレクトリ)

実行すると、以下のエラーが発生し、anonymousアクセスするためのaclが正常に登録されず、導入後、http://localhost:8080/apex

にアクセスした時に、認証ダイアログが表示されてしまう。


       セキュリティクラス DAV:dav がロードできません


これは、前提となるxdbが、①で不完全で導入されるため。


対象方法は、①を実行する前に、

%ORACLE_HOME%/rdbms/xml

に製品版等にあるxmlファイルを配置すれば解決する。