Home » RDBMS Server » Server Administration » how to change sys.props$'s value$ back since couldn't open
how to change sys.props$'s value$ back since couldn't open [message #59788] Mon, 22 December 2003 17:16 Go to next message
redgene
Messages: 3
Registered: December 2003
Junior Member
[[wrong steps have done]]

log on as SYSTEM/MANAGER,
update props$ set value$='Simplifiled Chinese ZHS16GBK 'where name='NLS_LANGUAGE%2
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 Go to previous messageGo to next message
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 Go to previous messageGo to next message
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 #59802 is a reply to message #59798] Tue, 23 December 2003 20:48 Go to previous messageGo to next message
Maaher
Messages: 7065
Registered: December 2001
Senior Member
Your database can't get up? Check your alert.log file for more errors. What happens after you received the error message ORA-01406?

MHE
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 Go to previous message
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
Previous Topic: packages and routines
Next Topic: reclaim tablespace after deleting data
Goto Forum:
  


Current Time: Fri Sep 20 12:27:06 CDT 2024