Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Change charset of database

Re: Change charset of database

From: Hemant K Chitale <hkchital_nospam_at_singnet_nospam.com.sg>
Date: Sun, 9 Jun 2002 00:24:47 +0800
Message-ID: <adtb4s$enh$1@coco.singnet.com.sg>

See Note 66320.1 on "Changing the Database National Character Set" See Note 119614.1 on "Changing Database Character Sets -- Valid Superset Definitions"

As per Forum Entry Doc ID 174886.996 WE8ISO8859P1 is *not* a strict subset of UTF8.
A Character Set conversion from WE8ISO8859P1 to UTF8 will not be supported unless you use Export-Import.

However, Sybrand specifically says that UTF8 is a superset of WE8ISO8859P1.

The sequence for option 1 is

"To change the database character set perform the following steps. Note that some of them have been erroneously omitted from the Oracle8i documentation:

  1. Make sure the parallel_server parameter in INIT.ORA is set to false or it is not set at all.
  2. Execute the following commands in Server Manager (svrmgrl):

     SVRMGR> SHUTDOWN IMMEDIATE; -- or NORMAL

         <do a full database backup>

     SVRMGR> STARTUP MOUNT;
     SVRMGR> ALTER SYSTEM ENABLE RESTRICTED SESSION;
     SVRMGR> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
     SVRMGR> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
     SVRMGR> ALTER DATABASE OPEN;
     SVRMGR> ALTER DATABASE CHARACTER SET <new_character_set>;
     SVRMGR> SHUTDOWN IMMEDIATE;    -- OR NORMAL
     SVRMGR> STARTUP RESTRICT;

  3. Restore the parallel_server parameter in INIT.ORA, if necessary.

  4. Execute the following commands in Server Manager:

     SVRMGR> SHUTDOWN IMMEDIATE;    -- OR NORMAL
     SVRMGR> STARTUP;

     The double restart is necessary because of a SGA initialization bug,
     fixed in Oracle9i.

To change the national character set replace the ALTER DATABASE CHARACTER SET command with ALTER DATABASE NATIONAL CHARACTER SET. You can issue both commands together if you wish."

Hemant K Chitale

"Sybrand Bakker" <postbus_at_sybrandb.demon.nl> wrote in message news:gs34guofihasuklrah3r1dq1pur0g03159_at_4ax.com...
> On Sat, 8 Jun 2002 12:16:31 +0200, "zeb"
> <thierry.constant2_at_wanadoo.fr> wrote:
>
> >Sorry, the version is 8.1.7 on HPUX 11.0
> >
> >"zeb" <thierry.constant2_at_wanadoo.fr> a écrit dans le message de news:
> >3d01d3d6$0$252$626a54ce_at_news.free.fr...
> >> Hi,
> >>
> >> I have to change the charset of my database
> >> from WE8ISO8859P1 to UTF8
> >>
> >> How can I do that ?
> >>
> >> What I found are:
> >> o If WE8ISO8859P1 is a subset from UTF8
> >> I can use:
> >> SHUTODWN IMMEDIATE
> >> cold backup
> >> STARTUP MOUNT
> >> ALTER SYSTEM ENABLE RESTRICTED SESSION
> >> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0
> >> ALTER DATABASE OPEN
> >> ALTER DATABASE CHARACTER SET UTF8
> >> SHUTDOWN IMMEDIATE
> >> STARTUP
> >>
> >> Is UTF8 a superset of W8ISO8859P1 ???
> >>
> >>
> >> o if not:
> >> cold backup
> >> CONNECT SYS/...
> >> UPDATESYS.PROP$ SET VALUE$ = UTF8 WHERE NAME = 'NLS_CHARACTERSET';
> >> SHUTDOWN IMMEDIATE
> >> STARTUP
> >>
> >> What is the right procedure ?
> >>
> >> Have I to EXP/IMP the date after ????
> >>
> >>
> >> Thanks for any correction, help , URL ....
> >>
> >>
> >>
> >>
> >
> Use version 2 if you want to loose support
>
> I also think the sequence of commands in version 1 is incorrect and
> incomplete
> I don't think the alter system is going to work before an alter
> database open.
> I also think you'll need to add
> alter database national character set UTF8
>
> UTF8 is a superset of WE8ISO8859p1. Note: You can not change it *back*
>
> Hth
>
>
> Sybrand Bakker, Senior Oracle DBA
>
> To reply remove -verwijderdit from my e-mail address
Received on Sat Jun 08 2002 - 11:24:47 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US