|
|
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые коллеги! Работаю с Autonomous Data Warehouse Cloud. (Oracle Database 18c Enterprise Edition Release 12.2.0.1.0 - 64bit Production на Oracle Exadada Database Machine) Загружаю данные с помощью Data Pump Import. Исходная база в кодировке NLS_CHARACTERSET = CL8MSWIN1251. Целевая база (PDB) в кодировке NLS_CHARACTERSET = AL32UTF8. При импорте получаю ошибки вида: Код: plaintext 1. Я понимаю, что проблема связана с тем, что таблица создается утилитой Data Pump Import с указанием Код: plsql 1. 2. 3. 4. 5. А при загрузке в этот столбец импорт пытается вставить данные с русскими буквами, которые имеют в байтах большую длину. Обычный путь - увеличить длину столбца и тогда данные в него поместятся. Но мне нужно (желательно) это сделать автоматически при импорте данных. Я изменил на уровне PDB Код: plsql 1. Это не помогло, т.к. из файла экспорта при создании таблицы явно берётся BYTE. Параметров импорта, которые отвечают за NLS_LENGTH_SEMANTICS я не нашел. Посоветуйте, пожалуйста, как при импорте создавать таблицы с NLS_LENGTH_SEMANTICS = CHAR? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2018, 03:15 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Похоже никак, только предварительное создание ORA-2375 ORA-12899 ORA-2372 Errors While DataPump Import Done From Single Byte Characterset to Multi Byte Characterset Database (Doc ID 436240.1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2018, 06:54 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Или предварительное изменение на источнике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2018, 07:54 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Вячеслав, Elic, Спасибо! Вы подтвердили мои невесёлые предположения. Я завел SR на сайте MOS. Ещё есть надежда, что Data Pump Import имеет нужные неописанные параметры, как например вот эти: ADWC. Importing Data Using Oracle Data Pump Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2018, 17:53 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые коллеги! К сожалению, техподдержка меня не обрадовала. Послали меня на ORA-01401 / ORA-12899 / ORA-01461 While Importing Or Loading Data In An AL32UTF8 / UTF8 (Unicode) Or Other Multibyte NLS_CHARACTERSET Database. (Doc ID 1297961.1) А там всё та же самая сказка "про белого бычка", но с :-( Буду создавать Enhancement Request (ER) для утилиты Data Pump Import. Просить, чтобы сделали параметр, предписывающий при создании таблиц принудительно преобразовывать NLS_LENGTH_SEMANTICS из BYTE в CHAR. Чтобы сделали что-то наподобие: Код: plsql 1. Как бы вы сформулировали такой ER? Имеет ли смысл предусмотреть принудительное преобразование из CHAR в BYTE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 12:24 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Валерий ЮринскийПослали меня на ORA-01401 / ORA-12899 / ORA-01461 While Importing Or Loading Data In An AL32UTF8 / UTF8 (Unicode) Or Other Multibyte NLS_CHARACTERSET Database. (Doc ID 1297961.1) А там всё та же самая сказка "про белого бычка", но с :-( А там всё та же самая сказка "про белого бычка", но с усложнением сюжета применением утилиты Csscan... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 12:29 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Валерий ЮринскийБуду создавать Enhancement Request (ER) для утилиты Data Pump Import. Просить, чтобы сделали параметр, предписывающий при создании таблиц принудительно преобразовывать NLS_LENGTH_SEMANTICS из BYTE в CHAR. Чтобы сделали что-то наподобие: Код: plsql 1. Как бы вы сформулировали такой ER? Имеет ли смысл предусмотреть принудительное преобразование из CHAR в BYTE? Насколько я понимаю NLS_LENGTH_SEMANTICS=BYTE нужен только при установке патчей. Вернее при создании/модификации строковых полей таблиц data dictionary. Так-что можно что-то типа если ORACLE_MAINTAINED=Y то length semantics BYTE или банально default length semantics = CHAR а Oracle при написании системного кода/скриптов явно указывает BYTE. Но это потянет на больше чем Enhancement Request, так-что добавление Oracle Data Pump трансформации куда более реалистично. Только я бы убрал NLS. NLS_LENGTH_SEMANTICS это параметр по умолчанию использующийся при создании обьектов с неполным описанием. Data Pump работает с с ужe существующими обьектами базы или их метаданными где умолчaний уже не существует. Я бы назвал трансформацию: Код: plsql 1. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 14:34 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
SYТолько я бы убрал NLS. NLS_LENGTH_SEMANTICS это параметр по умолчанию использующийся при создании обьектов с неполным описанием. Data Pump работает с с ужe существующими обьектами базы или их метаданными где умолчaний уже не существует. Я бы назвал трансформацию: Код: plsql 1. Хорошее предложение. Спасибо! Вот только жаль, что делать это улучшение оракулянты могут вечно... :-( Один наш enhancement request 20114154 - CREATE CONSTRAINT IN 2 STEPS TO USE PARALLEL FEATURES инхансируют уже с 28 ноября 2014 г... :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 15:02 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. В результате передекларации ключа может свалиться создание IOT. Возникает неоднозначность с объектными типами и коллекциями, используемыми для хранения. С другой стороны, dbms_metadata умеет опускать byte в генерируемом ddl. И вообще много чего трансформить и ремапить. Для гибкого экспорта-импорта ddl через sql или xml файлы можно использовать тип schema_export. Зачем-то поделили на datapump и metadata и получились два недоинструмента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 15:58 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Вообще-то может свалиться не только создание IOT, а, в принципе, любого индекса (включая уникальные) Так что, думаю, даже Enhancement Request отклонят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 16:10 |
|
||
|
Как изменить NLS_LENGTH_SEMANTICS при использовании Data Pump Import
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровВообще-то может свалиться не только создание IOT, а, в принципе, любого индекса (включая уникальные) Так что, думаю, даже Enhancement Request отклонятНе надо думать. Будем пробовать - создавать ER. Сговоримся и поднимем волну: многие люди предлагают одно и то же одними словами! Значит это на самом деле так важно! :-) Дайте возможность (молоток), а уж, как её применить, мы сами решим... Не запретили же пока продажу молотков оттого, что ими иногда бьют насмерть по голове! :-) Если индекс получится слишком длинный - в топку его. IoT - это вообще отдельное зло, которое в автономных базах уже запрещено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2018, 16:14 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39683389&tid=1883639]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 425ms |

| 0 / 0 |
