Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / nvarchar2 size / 7 сообщений из 7, страница 1 из 1
16.10.2018, 16:34
    #39718269
rybingleb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvarchar2 size
При попытке
Код: 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
16.10.2018, 16:47
    #39718279
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvarchar2 size
rybingleb, в твоем случае 2000.
...
Рейтинг: 0 / 0
16.10.2018, 16:58
    #39718293
rybingleb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvarchar2 size
Lary Denisrybingleb, в твоем случае 2000.

Спасибо. А можно уточнить почему?
...
Рейтинг: 0 / 0
16.10.2018, 17:09
    #39718300
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvarchar2 size
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
17.10.2018, 05:14
    #39718515
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvarchar2 size
...
Рейтинг: 0 / 0
17.10.2018, 08:14
    #39718536
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvarchar2 size
Для получения декларативной длины nchar из байтов есть функция nls_charset_decl_len.
...
Рейтинг: 0 / 0
17.10.2018, 14:12
    #39718794
rybingleb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
nvarchar2 size
Всем большое спасибо.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / nvarchar2 size / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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