powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01450
3 сообщений из 3, страница 1 из 1
ORA-01450
    #32046324
none
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например требуется создать индекс на длинное текстовое поле. Так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> DROP TABLE TABLE_X1;

Table dropped.

SQL> CREATE TABLE TABLE_X1
   2   (
   3   ID NUMBER( 10 ),
   4   DESCRIPTION VARCHAR2( 4000 )
   5   );

Table created.

SQL> CREATE INDEX TABLE_X1_INDEX1 ON TABLE_X1
   2   (
   3   DESCRIPTION ASC
   4   );
CREATE INDEX TABLE_X1_INDEX1 ON TABLE_X1
                                *
ERROR at line  1 :
ORA- 01450 : maximum key length ( 3218 ) exceeded


Описание ошибки из док-ии:
ORA-01450 maximum key length (string) exceeded
Cause: The combined length of all the columns specified in a CREATE INDEX statement exceeded the maximum index length. The maximum index length varies by operating system.

Самое важное это: "The maximum index length varies by operating system"
Цифра 3218 завиcит от ОС. Кто-то знает как этот параметр увелить, уменьшить и вообще возможно ли это???

Пратформа: Win200AdvServer+Oracle8.1.7
...
Рейтинг: 0 / 0
ORA-01450
    #32046335
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DB_BLOCK_SIZE: Maximum Index Key Length:

2K (2048) 758 Bytes
4K (4096) 1578 Bytes
8K (8192) 3218 Bytes
16K (16384) 6498 Bytes

т.е. единственный выход пересоздать базу с 16К блоками, что тоже не всегда хорошо (зависит от типа вашего приложения).

Ограничение вызвано тем, что в одном блоке B*Tree индекса должно храниться как минимум два ключа максимальной длины плюс расходы на PCTFREE, INITRANS, header и т.д., а ограничено 1/3 размера блока.
...
Рейтинг: 0 / 0
ORA-01450
    #32046338
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>т.е. единственный выход пересоздать базу с 16К блоками

кстате, это тоже вам не поможет (обратил внимание на вашу длину индекса 4000)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-01450
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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