2013-10-10 3 views
3

У меня есть столбец в Oracle для хранения комментариев Nvarchar2(2000). Когда пользователь пытается войти за 2000 символов, я получаю следующее сообщение об ошибке:ORA-00910: указанная длина слишком длинная для его типа данных

ORA-00910: specified length too long for its datatype. 

Параметр NLS_NCHAR_CHARACTERSET оказывает AL16UTF16 значения.

Есть ли способ увеличить размер, чтобы принять до 6000 символов? У моей колонки уже много контента, поэтому не уверен, смогу ли я изменить тип данных с NVarchar(2000) на любой другой.

+1

Что является CharacterSet вашей базы данных? Вам нужно использовать nvarchar2s? – Ben

ответ

10

Если вы не используете Oracle 12c, это не представляется возможным хранить более 2000 символов, смотрите описание Datatypes здесь:

http://docs.oracle.com/cd/B28359_01/server.111/b28320/limits001.htm

Вместо этого, вы должны использовать тип данных NCLOB.

Если вы используете 12с, проверьте: http://dbasolved.com/2013/06/26/change-varchar2-to-32k-12c-edition/

+0

К сожалению, мы столкнулись с этим пределом, в нашем случае нам потребовалось 3000 нормальных символов на 3000 байт, но некоторые вещи были сохранены на 2 байта. В качестве обходного пути нам пришлось преобразовать, поскольку он не позволял использовать 6000 символов. – CsBalazsHungary

Смежные вопросы