Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 импорт схем из 9.2 в 10 XE  [new]
Serge N
Member

Откуда:
Сообщений: 158
пытаюсь перелить несколько схем из 9.2 Oracle в 10 XE

исходный 9 сервер:
select * from V$NLS_PARAMETERS where parameter like 'NLS%CHARACTERSET';
NLS_CHARACTERSET      	CL8MSWIN1251
NLS_NCHAR_CHARACTERSET	AL16UTF16   

10 сервер, куда заливаю:
select * from V$NLS_PARAMETERS where parameter like 'NLS%CHARACTERSET';
NLS_CHARACTERSET      	AL32UTF8 
NLS_NCHAR_CHARACTERSET	AL16UTF16

команда экспорта:
NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251
export NLS_LANG

exp system/$apassword file=all.dmp log=all.log owner=user1,user2,user3

команда импорта:
NLS_LANG=RUSSIAN_AMERICA.CL8MSWIN1251
export NLS_LANG

imp system/$apassword file=all.dmp log=all.log touser=user1,user2,user3 fromuser=user1,user2,user3 buffer=10000000

Лог импорта:
Connected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

Export file created by EXPORT:V09.02.00 via conventional path
import done in CL8MSWIN1251 character set and AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)

. . importing table                    "RBMISSION"
IMP-00019: row rejected due to ORACLE error 12899
IMP-00003: ORACLE error 12899 encountered
ORA-12899: value too large for column "CMN"."RBMISSION"."RBMISSIONNAME" (actual: 61, maximum: 50)
- при импорте некоторые строки не влазят

причем короткие строки переливаются нормально.
судя по всему меняется требуемая для строки размерность

если при импорте выставить
NLS_LANG=RUSSIAN_RUSSIA.AL32UTF8
результат тот же самый

вопрос - что нужно делать? никто не сталкивался с таким?
25 май 10, 17:32    [8832381]     Ответить | Цитировать Сообщить модератору
 Re: импорт схем из 9.2 в 10 XE  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Serge N
вопрос - что нужно делать? никто не сталкивался с таким?


select * from nls_database_parameters where parameter = 'NLS_LENGTH_SEMANTICS';
select CHAR_USED from all_tab_columns where owner = 'CMN' and table_name = 'RBMISSION' and column_name = 'RBMISSIONNAME';

BYTE/B? Таблиц, в которые не импортируются строки, много?
25 май 10, 18:24    [8832894]     Ответить | Цитировать Сообщить модератору
 Re: импорт схем из 9.2 в 10 XE  [new]
Serge N
Member

Откуда:
Сообщений: 158
На обоих машинах и с 9 и с 10 результаты идентичны:
select * from nls_database_parameters where parameter = 'NLS_LENGTH_SEMANTICS';
NLS_LENGTH_SEMANTICS BYTE

select CHAR_USED from all_tab_columns 
where owner = 'CMN' and table_name = 'RBMISSION' and column_name = 'RBMISSIONNAME';
B

таких таблиц 11 штук - с полями varchar2
26 май 10, 08:57    [8834171]     Ответить | Цитировать Сообщить модератору
 Re: импорт схем из 9.2 в 10 XE  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
Serge N
таких таблиц 11 штук - с полями varchar2

Если строки короткие (до 2000 знаков) то можно создать таблицы с такой же структурой и указанием постфикса char в длине поля:
 create table t (a varchar(10 char));
Если не влезают то либо проверить работоспособность приложения на clob полях, либо использовать не уникодный XE с подмененой кодовой страницей базы.
26 май 10, 09:11    [8834211]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить