トップ 一覧 置換 検索 ヘルプ RSS ログイン

OracleXEでJA16SJISの利用の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!11g Express Edtion(Linuxの場合)
http://www.ajisaba.net/db/ora_linux_sjis.html

!!データベース削除前の準備
initXE.oraの作成
 $ cd /u01/app/oracle/product/11.2.0/xe/dbs
 $ sqlplus / as sysdba
 SQL> create pfile = 'initXE.ora' from spfile = 'spfileXE.ora';

!!データベース削除
 # su - oracle
 $ sqlplus / as sysdba
!データベースのシャットダウン
 SQL> shutdown immediate
 データベースがクローズされました。
 データベースがディスマウントされました。
 ORACLEインスタンスがシャットダウンされました。
 
!restrictを指定して起動
  startup restrict mount
 ORACLEインスタンスが起動しました。
 
 Total System Global Area  417546240 bytes
 Fixed Size                  2227080 bytes
 Variable Size             306185336 bytes
 Database Buffers          104857600 bytes
 Redo Buffers                4276224 bytes
 データベースがマウントされました。
 
!データベースの削除
 SQL> drop database;
 
 データベースが削除されました。
 
 Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Productionとの接続が切断されました。
 SQL> quit

!!SHIFTJISのデータベース作成
!データベース作成用のスクリプト
/u01/app/oracle/product/11.2.0/xe/dbs/createdb.sql 
  CREATE DATABASE XE
     LOGFILE GROUP 1 ('/u01/app/oracle/oradata/XE/redo01a.log') SIZE 100M BLOCKSIZE 512,
             GROUP 2 ('/u01/app/oracle/oradata/XE/redo02a.log') SIZE 100M BLOCKSIZE 512,
             GROUP 3 ('/u01/app/oracle/oradata/XE/redo03a.log') SIZE 100M BLOCKSIZE 512
     MAXLOGFILES 5
     MAXLOGMEMBERS 5
     MAXLOGHISTORY 1
     MAXDATAFILES 100
     CHARACTER SET JA16SJIS または JA16SJISTILDE
     NATIONAL CHARACTER SET UTF8
     EXTENT MANAGEMENT LOCAL
     DATAFILE '/u01/app/oracle/oradata/XE/system01.dbf'
        SIZE 325M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
     SYSAUX DATAFILE '/u01/app/oracle/oradata/XE/sysaux01.dbf'
        SIZE 325M REUSE  AUTOEXTEND ON MAXSIZE UNLIMITED
     DEFAULT TABLESPACE users
        DATAFILE '/u01/app/oracle/oradata/XE/users01.dbf'
        SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
     DEFAULT TEMPORARY TABLESPACE temp
        TEMPFILE '/u01/app/oracle/oradata/XE/temp01.dbf'
        SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
     UNDO TABLESPACE undotbs1
        DATAFILE '/u01/app/oracle/oradata/XE/undo01.dbf'
        SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

!!インスタンス起動とデータベース作成
 SQL> startup nomount pfile=initXE.ora
 ORACLEインスタンスが起動しました。
 
 Total System Global Area  417546240 bytes
 Fixed Size                  2227080 bytes
 Variable Size             293602424 bytes
 Database Buffers          117440512 bytes
 Redo Buffers                4276224 bytes
データベースを作成する
 SQL> @createdb.sql
 
 データベースが作成されました。
 
 
 表領域が作成されました。
 
 
 データベースが変更されました。
 
!!データベース作成後に実行するスクリプト
 SQL> @/u01/app/oracle/product/11.2.0/xe/rdbms/admin/catalog.sql
 SQL> @/u01/app/oracle/product/11.2.0/xe/rdbms/admin/catproc.sql
  connect system/manager
  @/u01/app/oracle/product/11.2.0/xe/sqlplus/admin/pupbld.sql

!!!10g Express Edtion (Windowsの場合)
http://weyk.air-nifty.com/none/2007/01/oraclexeja16sji_7d01.html
http://www006.upp.so-net.ne.jp/auctor/software/oracle_xe_ja16sjistild.html

以下抜粋
※以降はWindowsのコマンドプロンプトから

デフォルトのインスタンスの削除
以下のbatchを実行
 C:\oraclexe\app\oracle\product\10.2.0\server\bin\cleanup.bat

※以降はWindowsのExploerなどを利用

デフォルトのインスタンスのspfile削除
以下のファイルを削除
 C:\oraclexe\app\oracle\product\10.2.0\server\dbs\*

デフォルトのインスタンスのpfileやパスワードファイルを削除
以下のファイルを削除
 C:\oraclexe\app\oracle\product\10.2.0\server\database\* のoradba.exe以外

デフォルトのインスタンスの制御ファイルとデータファールを削除
以下のファイルを削除
 C:\oraclexe\oradata\XE\*

※以降はメモ帳あたりで

pfileを作成(メモ帳でも何でも)
 C:\oraclexe\app\oracle\product\10.2.0\server\database\initXE.ora
------------------------
 java_pool_size=4194304
 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=140M
 shared_servers=1
 undo_management='AUTO'
 undo_tablespace='UNDO'
 user_dump_dest='C:\oraclexe\app\oracle\admin\XE\udump'
-------------------------

※以降はWindowsのコマンドプロンプトから


Windowsのサービスを作成
 oradim -NEW -SID XE -SYSPWD oracle -PFILE C:\oraclexe\app\oracle\product\10.2.0\server\database\initXE.ora

環境変数設定
 set ORACLE_SID=XE

sqlplusを起動
 sqlplus / "as sysdba"

※以降はsqlplus内

インスタンスを起動
 startup nomount

データベース作成
 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;

必要なスクリプトを実行
 @C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catalog.sql
 @C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\catproc.sql

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

必要なスクリプトを実行
 @C:\oraclexe\app\oracle\product\10.2.0\server\sqlplus\admin\pupbld.sql

!!!環境変数
LinuxでXEを使う場合は、パスの設定などを通常のユーザで行う場合
 export ORACLE_SID=XE
 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
 export PATH=${PATH}:${ORACLE_HOME}/bin
 export NLS_LANG=Japanese_Japan.AL32UTF8
などを設定しておくと良い。
シェルスクリプトとして、利用するときだけ sourceコマンドに渡してもよい。

!!!DDLの取得
http://blogs.yahoo.co.jp/tksoft/61030927.html
XEでデータベースを再作成した場合、 dbms_metadata.get_ddl を使うとエラーが出る。
 [ORA-39212]インストール・エラー: XSLスタイルシートが正しくロードされませんでした 

 dbms_metadata.get_ddl を使えるようにするには、他のOracle(XE以外)が動作している環境から
  \oracle\product\10.2.0\db_1\RDBMS\xml
をXEの
 rdbms/xml
へコピーし、以下のコマンドを実行する。
 exec dbms_metadata_util.load_stylesheets

もし、この時に kupostdt.xsl が見つからないのエラーが出る場合は、xml/xsl以下に kupostdt.xslを作成する。
kupostdt.xsl
  <?xml version="1.0"?>
  <!--
  NAME
      kupostdt.xsl
  DESCRIPTION
      XSLT stylesheet for XML => DDL conversion of ku$_post_data_table_t ADTs
  NOTES
      Do NOT modify this file under any circumstance. Copy the file
      if you wish to use this stylesheet with an external XML/XSL parser
  
  MODIFIED        MM/DD/YY
      sdavidso 06/08/09 - new stylesheet - for minimize records_per_bock
   -->
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <!-- Import required scripts -->
   <xsl:import href="kucommon.xsl"/>
   <!-- Top-level parameters -->
   <xsl:param name="PRETTY">1</xsl:param>
   <xsl:param name="SQLTERMINATOR">1</xsl:param>
   <!-- params for parse -->
   <xsl:param name="PRS_DDL">0</xsl:param>
   <xsl:param name="PRS_DELIM">\{]`</xsl:param>
   <xsl:param name="PRS_VERB">0</xsl:param>
   <xsl:param name="PRS_OBJECT_TYPE">0</xsl:param>
   <xsl:param name="PRS_SCHEMA">0</xsl:param>
   <xsl:param name="PRS_NAME">0</xsl:param>
   <xsl:param name="PRS_GRANTEE">0</xsl:param>
   <xsl:param name="PRS_GRANTOR">0</xsl:param>
   <xsl:param name="PRS_BASE_OBJECT_TYPE">0</xsl:param>
   <xsl:param name="PRS_BASE_OBJECT_SCHEMA">0</xsl:param>
   <xsl:param name="PRS_BASE_OBJECT_NAME">0</xsl:param>
   <xsl:template match="POST_DATA_TABLE_T">
    <!-- *******************************************************************
  Template: POST_DATA_TABLE_T - template for table attributes
  which can only be set after table data is loaded.
  ******************************************************************** -->
    <xsl:call-template name="DoParse">
     <xsl:with-param name="Verb">ALTER</xsl:with-param>
     <xsl:with-param name="ObjectType">POST_DATA_TABLE</xsl:with-param>
     <xsl:with-param name="SchemaNode" select="SCHEMA_OBJ/OWNER_NAME"/>
     <xsl:with-param name="NameNode" select="SCHEMA_OBJ/NAME"/>
    </xsl:call-template>
    <xsl:if test="(SPARE1 mod 65536)>=32768">
     <xsl:text> ALTER TABLE </xsl:text>
     <xsl:apply-templates select="SCHEMA_OBJ"/>
     <xsl:text>MINIMIZE RECORDS_PER_BLOCK</xsl:text>
    </xsl:if>
   </xsl:template>
  </xsl:stylesheet>

 


{{category2 データベース,Oracle}}