Oracle - alter character set
7 отговора
414 прегледа
Oracle - alter character set
Защо като напиша това - alter database character set WE8ISO8859P1
ми отговаря така - ORA-24329: invalid character set identifier
Според документацията това може да се напише. Как да разбера какви character set-ове има. В коя директория би трябвало да са записани?
ми отговаря така - ORA-24329: invalid character set identifier
Според документацията това може да се напише. Как да разбера какви character set-ове има. В коя директория би трябвало да са записани?
Re: Oracle - alter character set
Ne si posochil versia na Oracle i koia OS izpolzwash. Priemam che rabotish sys SQL*Plus.
Obshto wzeto tozi statement raboti - testwah go na Oracle v.9.0.1/Win2000 i Oracle v.8.1.7/Linux i wsichko mina bez problemi.
Validnite parametri mozesh da namerish w V$NSL_VALID_VALUES.
Obshto wzeto tozi statement raboti - testwah go na Oracle v.9.0.1/Win2000 i Oracle v.8.1.7/Linux i wsichko mina bez problemi.
Validnite parametri mozesh da namerish w V$NSL_VALID_VALUES.
Гадна работа
Гледах я тази таблица и в нея има описана и кодовата таблица, и езика, и територията, бе всичко за България го има, а грешката си я дава
В момента кодовата таблица е WE8PC850. Като напиша че искам да сменя кодовата таблица с WE8PC850 вече ми дава съвсем друго съобщение - че трябва базата да е в ексклузив режим, но това е нормално.
Имаш ли представа на какво може да се дължи това съобщение за невалидна кодова таблица. Версията на Оракъла е 8.0.3.0.6. Командата я пусках и през SQL+, и през SQL ExplorerІа на Делфи, и през Сървър мениджъра, но навсякъде грешката си е все тая
В момента кодовата таблица е WE8PC850. Като напиша че искам да сменя кодовата таблица с WE8PC850 вече ми дава съвсем друго съобщение - че трябва базата да е в ексклузив режим, но това е нормално.
Имаш ли представа на какво може да се дължи това съобщение за невалидна кодова таблица. Версията на Оракъла е 8.0.3.0.6. Командата я пусках и през SQL+, и през SQL ExplorerІа на Делфи, и през Сървър мениджъра, но навсякъде грешката си е все тая
Re: Гадна работа
uhh, gadna rabota e naistina (pone da beshe 8.0.5)
dokolkoto si spomnqm (shtoto beshe mnogo otdawna experience-a s chistite 8-ci) trqbwa da create-nesh bazata s american-a po default i sled towa da q smenqsh (inache bg ne bachka)
wij dali imash lbuilder (w momenta se namira w $orahome/ocommon/nls/lbuilder) i wij tam kak e hawata
(probwaj wse pak w edin sql*plus edni alter session set NLS_LANGUAGE = Bulgarian kakto i American)
dokolkoto si spomnqm (shtoto beshe mnogo otdawna experience-a s chistite 8-ci) trqbwa da create-nesh bazata s american-a po default i sled towa da q smenqsh (inache bg ne bachka)
wij dali imash lbuilder (w momenta se namira w $orahome/ocommon/nls/lbuilder) i wij tam kak e hawata
(probwaj wse pak w edin sql*plus edni alter session set NLS_LANGUAGE = Bulgarian kakto i American)
виж тоя линк
[линк]
тука пише за твоя проблем с 8.0.3 , но май не пише много за решението...
иначе WE8PC850 subset ли e на WE8ISO8859P1 ?
животът не е толкова прост колкото изглежда. той е по-прост!
тука пише за твоя проблем с 8.0.3 , но май не пише много за решението...
иначе WE8PC850 subset ли e на WE8ISO8859P1 ?
животът не е толкова прост колкото изглежда. той е по-прост!
Re: Oracle - alter character set
Pich tova e ot metalink. Vij dali ste to svurshi rabota
PURPOSE
To explain how to change the database or national character set of
an existing Oracle8 database without having to recreate the database.
SCOPE & APPLICATION
The method described here is documented in the Oracle 8.1.x documentation.
It is not documented but it can be used in version 8.0.x.
Before using this method it is essential to do a full backup of the
database.
This method does not work in Oracle7.
Note that changing the database or the national character set as described
in this document does not change the actual character codes, it only
changes the character set declaration. If you want to convert the contents
of the database (character codes) from one character set to another
you must use the Oracle Export and Import utilities. This is needed,
for example, if the source character set is not a binary subset of
the target character set, i.e. if a character exists in the source
and in the target character set but not with the same binary code.
RELATED DOCUMENTS
[NOTE:62107.1] The National Character Set in Oracle8
[NOTE:119164.1] Changing Database Character set - Valid Superset definitions
Oracle8i National Language Support Guide
CHANGING THE DATABASE OR NATIONAL CHARACTER SET
================================================
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.
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.
The ALTER DATABASE [NATIONAL] CHARACTER SET command will return:
ORA-01679: database must be mounted EXCLUSIVE and not open to activate
- if you do not enable restricted session
- if you startup the instance in PARALLEL/SHARED mode
- if you do not set the number of queue processes to 0
- if you do not set the number of AQ time manager processes to 0
- if anybody is logged in apart from you.
This error message is misleading. The command requires the database to be
open but only one session, the one executing the command, is allowed.
The above method will only work if the old character set is US7ASCII (or if
you change the character set to itself). If the old character set is neither
US7ASCII nor equal to the new character set, the ALTER DATABASE [NATIONAL]
CHARACTER SET command will return:
- in Oracle 8.1.5 and above:
ORA-12712: new character set must be a superset of old character set
- in Oracle 8.0.5 and 8.0.6:
ORA-12710: new character set must be a superset of old character set
- in Oracle 8.0.3 and 8.0.4:
ORA-24329: invalid character set identifier
PURPOSE
To explain how to change the database or national character set of
an existing Oracle8 database without having to recreate the database.
SCOPE & APPLICATION
The method described here is documented in the Oracle 8.1.x documentation.
It is not documented but it can be used in version 8.0.x.
Before using this method it is essential to do a full backup of the
database.
This method does not work in Oracle7.
Note that changing the database or the national character set as described
in this document does not change the actual character codes, it only
changes the character set declaration. If you want to convert the contents
of the database (character codes) from one character set to another
you must use the Oracle Export and Import utilities. This is needed,
for example, if the source character set is not a binary subset of
the target character set, i.e. if a character exists in the source
and in the target character set but not with the same binary code.
RELATED DOCUMENTS
[NOTE:62107.1] The National Character Set in Oracle8
[NOTE:119164.1] Changing Database Character set - Valid Superset definitions
Oracle8i National Language Support Guide
CHANGING THE DATABASE OR NATIONAL CHARACTER SET
================================================
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.
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.
The ALTER DATABASE [NATIONAL] CHARACTER SET command will return:
ORA-01679: database must be mounted EXCLUSIVE and not open to activate
- if you do not enable restricted session
- if you startup the instance in PARALLEL/SHARED mode
- if you do not set the number of queue processes to 0
- if you do not set the number of AQ time manager processes to 0
- if anybody is logged in apart from you.
This error message is misleading. The command requires the database to be
open but only one session, the one executing the command, is allowed.
The above method will only work if the old character set is US7ASCII (or if
you change the character set to itself). If the old character set is neither
US7ASCII nor equal to the new character set, the ALTER DATABASE [NATIONAL]
CHARACTER SET command will return:
- in Oracle 8.1.5 and above:
ORA-12712: new character set must be a superset of old character set
- in Oracle 8.0.5 and 8.0.6:
ORA-12710: new character set must be a superset of old character set
- in Oracle 8.0.3 and 8.0.4:
ORA-24329: invalid character set identifier
Значи спукана ми е работата
Character Set-а не е US7ASCII
И сега какво - трябва да се инсталира всичко наново
И сега какво - трябва да се инсталира всичко наново
Re: Значи спукана ми е работата
aha. mojesh da smetish character seta samo na takav koito e strict superset na tozi s koito e suzdadena(ili s koito e v momenta), t.e. vsichki characters vav tekushtia character set triabva da sa na razpolojenie i v novia
otnosno national char seta, poneje mai se spomena izmejdu postovete - toi se izpolzva samo za nchar, nvarchar2 i nclob
smianata na nestrict superset e razreshena, obache moje da ti se omajat tablicite. smianata na ne-superset ne e razreshena. triabva da si recreate-nesh bazatadanni. nai lesno shte e da si exportnesh vsichki tablespaces(bez system razbira se), da si napishesh script za bazata i posle da gi importvash edna po edna
[линк]
otnosno national char seta, poneje mai se spomena izmejdu postovete - toi se izpolzva samo za nchar, nvarchar2 i nclob
smianata na nestrict superset e razreshena, obache moje da ti se omajat tablicite. smianata na ne-superset ne e razreshena. triabva da si recreate-nesh bazatadanni. nai lesno shte e da si exportnesh vsichki tablespaces(bez system razbira se), da si napishesh script za bazata i posle da gi importvash edna po edna
[линк]