powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / nvarchar2 size
7 сообщений из 7, страница 1 из 1
nvarchar2 size
    #39718269
rybingleb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При попытке
Код: plsql
1.
create table xxtest33(col1 nvarchar2(4000))


Ругается "ORA-00910: заданная длина слишком велика для этого типа данных".
Версия Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi

Тут написано: "The maximum length of the column is determined by the national character set definition. Width specifications of character datatype NVARCHAR2 refer to the number of characters. The maximum column size allowed is 4000 bytes."

Как понять, какую максимальную длину можно задать? Что где в базе посмотреть, что на что разделить? )
...
Рейтинг: 0 / 0
nvarchar2 size
    #39718279
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rybingleb, в твоем случае 2000.
...
Рейтинг: 0 / 0
nvarchar2 size
    #39718293
rybingleb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lary Denisrybingleb, в твоем случае 2000.

Спасибо. А можно уточнить почему?
...
Рейтинг: 0 / 0
nvarchar2 size
    #39718300
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rybinglebКак понять, какую максимальную длину можно задать? Что где в базе посмотреть, что на что разделить? )
1. выполянем
Код: plsql
1.
select value from nls_database_parameters where parameter = 'NLS_NCHAR_CHARACTERSET';


где наблюдаем мультибайтовый charset.

2. изучаем матчасть: http://www.unicode.org/faq/utf_bom.html#utf16-1

3. Комбинируя полученное знание с
rybingleb Тут написано: "The maximum length of the column is determined by the national character set definition. Width specifications of character datatype NVARCHAR2 refer to the number of characters. The maximum column size allowed is 4000 bytes."
достигаем просветления: один общеупотребительный символ в utf16 занимает 2 байта.
Решаем уравнение:
Размер в символах*2 <= предел в 4000 байт
Получаем:
Размер в символах <= 2000

...имеем ввиду, что не всяких символов поместится 2000, но это будет уже runtime error :)
...
Рейтинг: 0 / 0
nvarchar2 size
    #39718515
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
nvarchar2 size
    #39718536
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для получения декларативной длины nchar из байтов есть функция nls_charset_decl_len.
...
Рейтинг: 0 / 0
nvarchar2 size
    #39718794
rybingleb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / nvarchar2 size
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]