Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > ORA-00972: identifier is too long


Автор: 3,14 6.7.2010, 16:27
Пытаюсь установить базу из бэккапа на локальном компе (у меня стоит Oracle 10g Express Edition), но вылетает множество ошибок вида:

IMP-00017: following statement failed with ORACLE error 972:
 "GRANT SELECT ON "ДБО_КОД_БНК" TO "ДБОКО_ПОЛЬЗОВАТЕЛЬ""
IMP-00003: ORACLE error 972 encountered
ORA-00972: identifier is too long

Видимо это связано  с мультибайтной кодировкой и с тем что названия таблиц, пользователей итп на русском языке. Поэтому я поставил кодировку UTF8:
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER DATABASE OPEN;
truncate table xdb.xdb$qname_id;
truncate table xdb.xdb$nmspc_id;
ALTER DATABASE NATIONAL CHARACTER SET UTF8;
COMMIT;

Судя по началу логов локальная кодировка теперь уже UTF8:
import done in CL8MSWIN1251 character set and UTF8 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
export server uses AL16UTF16 NCHAR character set (possible ncharset conversion)

Но ошибки все равно остаются, что можно с этим поделать? Переименовать идентификаторы на английский не предлагать smile

Автор: ToshaCh 8.7.2010, 09:03
Гы! Я это увидел! Я увидел балбесов которые назвали таблицы на русском. На самом деле поменять идентификаторы самое правильное дело, т.к. работать это не будет - решишь эту проблему начнуться другие. 

Если по делу, то пока не очевидны танцы с кодировкой. Ты использовал data pump или классические exp/imp?

Кроме того давай локализуем проблему. Нужно понять не работает импорт или вообще база не осознаёт русский.  Сделай что-нить типа:
Код

create table "йа_табличко" as select * from all_objects;


Автор: 3,14 14.7.2010, 16:00
Цитата(ToshaCh @  8.7.2010,  09:03 Найти цитируемый пост)
Гы! Я это увидел! Я увидел балбесов которые назвали таблицы на русском. На самом деле поменять идентификаторы самое правильное дело, т.к. работать это не будет - решишь эту проблему начнуться другие. 

Я бы с радостью, да вот база не наша. Нужно только к ней прикрутить плюшку дял интеграции с нашей системой.

А проблема решилась установкой нормального Oracle вместо Express Edition.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)