Oracle 10g Express Edition

仕事でOracle使うことが多いので試してみました。
インストールも操作方法も簡単でいいのですが、
デフォルトの文字セットがUTF-8固定で変更もできません。
ただいくつかのサイトを見る限り既存のインスタンスを削除し再作成時に別の文字セットを指定することでその他の文字セットも利用することはできるようです。
(サポートはしていませんが)

というわけで挑戦した際のログを残します。(文字セットはJA16SJISを指定)
以下は参考にしたサイトです。
分かりやすくて非常に助かりました。ありがとうございます。


OracleXE(10g)でJA16SJISの利用: なんとなく
悲願のマイホーム大作戦 – 年収は少ないものの共働きでコツコツと節約を試み頭金を貯めマイホームをゲットする迄の奮戦記です


ディレクトリ等はデフォルト構成でインストールした場合のものです。


1. デフォルトのインスタンスの削除します。
 (下記batchファイルをコマンドプロンプトから実行することで削除できるようです)
 C:\oraclexe\app\oracle\product\10.2.0\server\bin\cleanup.bat


2. デフォルトのインスタンスのspfile削除します。
 下記ディレクトリ以下のファイルを全て削除してください。

 C:\oraclexe\app\oracle\product\10.2.0\server\dbs\


3. デフォルトのインスタンスのpfileやパスワードファイルを削除します。
 oradba.exeをのぞく下記ディレクトリ以下のファイルを全て削除してください。

 C:\oraclexe\app\oracle\product\10.2.0\server\database\


4. デフォルトのインスタンスの制御ファイルとデータファールを削除します。
 下記ディレクトリ以下のファイルを全て削除してください。
 C:\oraclexe\oradata\XE\


5. pfileを下記の場所にテキストエディタ等で作成します。(内容はこのままでも使用はできますが必要に応じて変更してください)
 C:\oraclexe\app\oracle\product\10.2.0\server\database\initXE.ora


pfileの中身(ここより下から開始)

                                              • -

java_pool_size=0
large_pool_size=4194304
shared_pool_size=62914560
streams_pool_size=0
audit_file_dest='C:\oraclexe\app\oracle\admin\XE\adump'
background_dump_dest='C:\oraclexe\app\oracle\admin\XE\bdump'
compatible='10.2.0.1.0'
control_files='C:\oraclexe\oradata\XE\control.dbf'
core_dump_dest='C:\oraclexe\app\oracle\admin\XE\cdump'
db_name='XE'
dispatchers='(PROTOCOL=TCP) (SERVICE=XEXDB)'
job_queue_processes=2
open_cursors=300
os_authent_prefix=''
pga_aggregate_target=40M
remote_login_passwordfile='EXCLUSIVE'
sessions=20
sga_target=100M
shared_servers=1
undo_management='AUTO'
undo_tablespace='UNDO'
user_dump_dest='C:\oraclexe\app\oracle\admin\XE\udump'

                                                • -

ここで終了


※手順6〜8はコマンドプロンプトから実行してください。


6. Windowsのサービスを作成します。
 
 oradim -NEW -SID XE -SYSPWD oracle -PFILE C:\oraclexe\app\oracle\product\10.2.0\server\database\initXE.ora
 ※-SYSPWDオプションでSYSユーザのパスワードを指定していますので必要に応じて変更してください。


7. 環境変数設定を設定します。
 set ORACLE_SID=XE


8. sqlplusを起動します。
 sqlplus / "as sysdba"


※以降はsqlplusで実行してください。


9. インスタンスを起動します。

 startup nomount


10. データベース作成をします。(このままでも使用はできますが必要に応じて変更してください)
下記コマンドを全てコピぺするだけでOKです。


create database XE
logfile group 1 ('C:\oraclexe\oradata\XE\redo1.dbf') size 32M,
group 2 ('C:\oraclexe\oradata\XE\redo2.dbf') size 32M,
group 3 ('C:\oraclexe\oradata\XE\redo3.dbf') size 32M
character set JA16SJIS
national character set utf8
datafile 'C:\oraclexe\oradata\XE\system.dbf'
size 240M
autoextend on
next 16M maxsize unlimited
extent management local
sysaux datafile 'C:\oraclexe\oradata\XE\sysaux.dbf'
size 48M
autoextend on
next 8M
maxsize unlimited
undo tablespace undo
datafile 'C:\oraclexe\oradata\XE\undo.dbf'
size 48M
autoextend on
default temporary tablespace temp
tempfile 'C:\oraclexe\oradata\XE\temp.dbf'
size 8M
autoextend on;


10. データ・ディクショナリ・ビューを作成します。
 @C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catalog.sql


11. PL/SQLを使用できるようにするため下記のスクリプトを実行します。
 @C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catproc.sql


※手順11〜12でいくつかエラーが出ますが問題はないようです。自分が確認した訳ではありませんが・・・。


12. 接続ユーザの切り替え
 connect system/manager


13. SQL*plusの製品情報を作成します。(SQL*plusで接続するために必要???)
 @C:\oraclexe\app\oracle\product\10.2.0\server\sqlplus\admin\pupbld.sql


これでインスタンスの作成は完了です。
後は任意でテーブルスペース等の追加を行ってください。