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が、①で不完全で導入されるため。
対象方法は、①を実行する前に、
に製品版等にあるxmlファイルを配置すれば解決する。