NTEXT на SQL Server в NVARCHAR2(2000) на Oracle (ORA-12899: значение слишком велико для столбца)

Мой источник находится в SQL Server, а целью является Oracle. Есть несколько таблиц со столбцами, определенными NTEXT в SQL Server, и я создал столбцы NVARCHAR2(2000), которые позволяют хранить данные из источника размером 4000 байт.

Когда я извлекаю данные, определенные NTEXT, из SQL Server, я привожу и подстрою данные, чтобы они соответствовали 4000 байтам в цели. Я использую Data Stage от IBM для извлечения исходной формы SQL Server, а приведенный ниже код выполняет преобразование типа данных в varchar (4000) и извлечение подстроки указанной длины, 4000 байт.

      cast(substring([text],1,3950) as varchar(4000)) as "TEXT"

Однако часто возникает ошибка ORA-12899, когда он вставляется в NVARCHAR2(2000) в Oracle размером 4000 байт.

Сообщение об ошибке: ORA-12899: слишком большое значение для столбца (фактическое: 3095, максимальное: 2000).

Во-первых , трудно понять, почему возникает ошибка, хотя место назначения имеет размер столбца 4000 байт, и я уже вырезал данные с помощью SUBSTING.

Во-вторых , мне было интересно, не упускаю ли я что-нибудь для решения проблемы, когда моя команда не рассматривает CLOB в Oracle для этих данных типа NTEXT.

Пожалуйста, помогите мне решить эту проблему. Я работаю над многими таблицами, и ошибка возникает часто.

0 ответов

Другие вопросы по тегам