|
Re: how to change sys.props$'s value$ back since couldn't open [message #59791 is a reply to message #59788] |
Mon, 22 December 2003 21:38 |
|
Maaher
Messages: 7065 Registered: December 2001
|
Senior Member |
|
|
Well, I hope you were sure what you were doing, because the 'PROPS$' method is NOT supported by Oracle at all! And this is only working for pre-8 databases (version 7.x.x). As from Oracle 8, the character set information is stored in many other places. Here's a quote from Metalink document 66320.1:
----------------------------------------------------------------------
CHANGING THE DATABASE OR NATIONAL CHARACTER SET
================================================
In Oracle7 it is possible to update the "SYS.PROPS$" table to change the
database character set. The method is unsupported but it is externally
published (see <Note:13856.1>). It is used by Oracle Installer to install
seed databases.
This method is not legal in Oracle8 because character set information is
stored in many other places in the Data Dictionary besides SYS.PROPS$, for
example with each table column, PL/SQL argument, etc.
In Oracle8 there is another way of changing the database or national character
set. The method uses two commands, which are documented in the Oracle8i
National Language Support Guide:
ALTER DATABASE [<db_name>] CHARACTER SET <new_character_set>
ALTER DATABASE [<db_name>] NATIONAL CHARACTER SET <new_NCHAR_character_set>
The database name is optional. The character set name should be specified
without quotes, for example:
ALTER DATABASE CHARACTER SET WE8ISO8859P1
To change the database character set perform the following steps. Not all
of these steps are absolutely necessary, but they are highly recommended:
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;
----------------------------------------------------------------------
Try to avoid messing around with sys tables directly.
If you need more help, indicate Oracle version + OS.
MHE
|
|
|
Re: how to change sys.props$'s value$ back since couldn't open [message #59798 is a reply to message #59791] |
Tue, 23 December 2003 17:37 |
redgene
Messages: 3 Registered: December 2003
|
Junior Member |
|
|
Thanks to Maaher,The problerm is that database could not be opened any more.here is the detail:
[[Environment]]
sco unixware 7.11
oracle 8.0.6
2 instances:"fwsk" and "o806",the problerm is on "fwsk".
[[wrong steps have done]]
log on as SYSTEM/MANAGER,
update props$ set value$='Simplifiled Chinese_china.ZHS16GBK' where name='NLS_LANGUAGE';
then shutdown and startup,there is a ORA-01406 wrong as follows:
SVRMGR> connect internal
Connected.
SVRMGR> startup open
ORACLE instance started.
Total System Global Area 159500224 bytes
Fixed Size 59328 bytes
Variable Size 97923072 bytes
Database Buffers 61440000 bytes
Redo Buffers 77824 bytes
Database mounted.
ORA-01406: fetched column value was truncated
[[wonder]]
how to change props$ 'NLS_LANGUAGE' back to US7ASCII since I've made a mistake.
The problerm is that database could not be opened.
thanks a lot!
|
|
|
|
Re: how to change sys.props$'s value$ back since couldn't open [message #60704 is a reply to message #59791] |
Fri, 27 February 2004 00:49 |
a.gerritsen
Messages: 1 Registered: February 2004
|
Junior Member |
|
|
Additional to this I'd like to add that changing backwards from WE8ISO8859P15 (including the euro sign) to WEISO8859P1 (as a result of incompatible clients) requires both methods.
First alter the contents of PROPS$ and then invoke the ALTER DATABASE statement, like this:
CONNECT INTERNAL;
UPDATE PROPS$
SET VALUE$='WE8ISO8859P1'
WHERE NAME IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
COMMIT;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT EXCLUSIVE;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET WE8ISO8859P1;
SHUTDOWN IMMEDIATE;
STARTUP;
Kind regards,
AG
|
|
|