This content has been marked as final. Show 19 replies
Updating SYS.props$ for changing the characterset is not the right approach. You should never update props$ table (unless Oracle support suggests). In 10g you should use the csalter command to change the characterset. So not sure if this can be solved.
Could you please provide the output of following query.
select * from nls_database_parameters
Also provide the following
5 digit database version, OS and its version and last successful database startup entries for alert log.
1) That is very much not the way to change the database character set. If memory serves, it was valid back in the Oracle 7 days but it is highly unsupported today. You should never, ever update data dictionary tables unless specifically told to do that by Oracle Support. Do you have a backup of the database from before you made this change? If so, can you restore the database from this backup?
2) There is a chapter in the Globalization Support Guide on changing the database character set. You really want to read through that carefully to understand how to change the database character set. Depending on the current character set, you may need to create a new database and do an export & import to move some or all of your tables.
Hi, Nadeem! I will try to give all information You need to help:
Database version: 10.2.0.1.0
Server/OS: IBM AIX 5.3 Unix
Allert log file is too long, I share it there: http://www.failiem.lv/down.php?i=gdrnhuq&n=ALERT_LOG_ENTRIES.txt
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
The last NLS_CHARACTERSET AL32UTF8 is because I tried to get back and tried vary charactersets. I use characterset before on other machines and all was good. There was windows and do not have problems.
Can You please give example how to use csalter command to set correct characterset to LATVIAN. And what I need to do to get my db back, if I have no backups?
Please HELP me!
Best regards, Debuger!
Shut down the database and do a backup of whatever you currently have.
Then, try this to learn the previous character set (connect as SYSDBA):
Then, run the same update as previously, but with the retrieved original character set:
SELECT DISTINCT NLS_CHARSET_NAME(charsetid) FROM sys.col$ WHERE type#=1 AND charsetform=1;
Then, double-check that you pasted the value correctly, without any leading or trailing blanks, and issue COMMIT. Then, restart the database.
UPDATE sys.props$ SET value$='<copy/paste result of the query here>' WHERE name='NLS_CHARACTERSET';
Let me know what was the original character set.