Имя: Пароль:
1C
1С v8
1C 8.2 + Oracle = ORA-01450 превышена максимальная длина ключа
,
0 Мэс33
 
10.07.13
10:19
Добавил в 1С регистр сведений. При попытке обновить конфу, появляется ошибка.
---------------------------------------------
В процессе обновления информационной базы произошла критическая ошибка.
по причине:
Ошибка СУБД:
Индекс не удалось создать с использованием табличного пространства V81C_INDEX
по причине:
Ошибка СУБД:
ORA-01450 превышена максимальная длина ключа.

Возможной причиной ошибки является использование большого количества строковых измерений регистра.
Попытка создать индекс в табличном пространстве V81C_INDEX_BIG не была предпринята из-за отсутствия табличного пространства.
---------------------------------------------

Установил у всех измерений и ресурсов  "Не индексировать" - обновилось.
Пытаюсь хотя для одного измерения добавить значение "Индексировать" - повторяется вышеуказанная ошибка.

Кто-нибудь сталкивался с этим? И да, релиз 8ки древний - 15ый (времени нет обновить релиз).
1 zva
 
10.07.13
10:34
А в измерениях есть строки неограниченной длины?
2 Базис
 
naïve
10.07.13
10:51
За  "использование ... строковых измерений регистра" надо сразу долго бить учебником по теории реляционных БД.
3 mistеr
 
10.07.13
11:13
(0) В Oracle есть ограничение на общую длину ключа индекса (в отличие от MSSQL, где ограничение на количество столбцов, составляющих ключ). Вот на него 1С и нарывается.

Ошибка именно при создании регистра, данных там еще нет?
4 mistеr
 
10.07.13
11:13
(2) Не всегда.
5 Базис
 
naïve
10.07.13
11:16
(4) Это будет не регистр. Справочник, табличка, вот это всё - но не регистр.


Помню, как открывался период в ТиС после добавления клиентом пары строковых измерений в РН. Целый день, пока я не приехал.
6 mikecool
 
10.07.13
11:17
(5) и что было когда приехал?
7 МихаилМ
 
10.07.13
11:27
(3) ms sql тоже есть ограничение

http://msdn.microsoft.com/ru-ru/library/ms191241(v=sql.90).aspx
8 mistеr
 
10.07.13
11:29
(5) Так ты про Семерку? Я тоже про нее много страшилок знаю.
9 МихаилМ
 
10.07.13
11:33
(5)
в 77 все внутренние ид - строки
10 mistеr
 
10.07.13
11:38
(2) Разработчиков типовых не забудь побить. А то они штрихкоды неправильно хранят.
11 mistеr
 
10.07.13
11:39
(7) Спасибо, буду знать. 900 байт маловато, в Oracle гораздо больше.
12 Мэс33
 
10.07.13
12:05
Сорри, уходил на обед.
(1) В измерениях есть строки переменной длины, сама длина установлена к примеру "100".
(3) Да, при создании.
13 Мэс33
 
10.07.13
12:07
Да, и в ресурсах есть строки переменной длины.
14 Мэс33
 
10.07.13
12:09
(2) Может и надо бить, но я взял пример модуля на инфостарте, видимо там никто с ораклом не работал и с такой ошибкой не сталкивался.
15 mzelensky
 
10.07.13
12:22
(12) Убери хотя бы до "90".
16 mistеr
 
10.07.13
12:38
(12) Странно, по идее ошибка случается при вставке данных.

В 14-м релизе добавили способ борьбы с этой ошибкой. Цитата из V8Update.htm:
-------------------
Реализована поддержка использования отдельного табличного пространства в Oracle Database в случае, если при реструктуризации информационной базы или загрузки информационной базы (из файла .dt) генерируется ошибка "ORA-01450. Табличное пространство (с именем "V81C_INDEX_BIG") не создается автоматически и должно быть создано администратором базы данных".

То есть нужно создать это ТП вручную с большим размером блока, например 16К.
17 mistеr
 
10.07.13
13:04
(15) Интересно, с какого потолка взята цифра?
Максимальная длина не имеет значения, имеет значение размер реальных данных.