ora-00972 идентификатор слишком длинный оракул 10 г - PullRequest
2 голосов
/ 07 мая 2010

Я получаю сообщение об ошибке, указанное в заголовке.

Я использую идентификатор 36 символов.Эта ошибка появляется только в моем sqldatasource в моей веб-форме asp.net.Это не проблема, когда я выполняю обновления в Oracle sql developer.

Как я могу это исправить?

Ответы [ 4 ]

3 голосов
/ 07 мая 2010

Oracle поддерживает идентификатор длиной не более 30 символов, а длина вашего идентификатора 36 больше этого значения, поэтому установите длину 30 символов.

см. ссылку

2 голосов
/ 07 мая 2010

Если вы успешно выполняете DML (UPDATE tableName SET ...) из другой среды, такой как SQL Developer, то ваш код asp.net должен каким-то образом неправильно задавать или создавать имя таблицы или имя столбца таблицы , Oracle сгенерирует это исключение, если проанализирует любой из них как> 30 символов перед любой другой проверкой.

Как указал Шринивас, максимальная длина составляет 30, поэтому 36-символьный идентификатор не может работать в SQL Developer. Можете ли вы опубликовать утверждение, которое «работает» в SQL Developer?

1 голос
/ 07 мая 2010

Ах, я вижу - это не то имя столбца, которое имеет длину 36 символов, это фактические данные. Рад, что мы это выяснили.

Что касается того, «почему это происходит из ASP.NET SqlDataSource», я подозреваю, что где-то вдоль линии существует проблема преобразования между ASCII и Unicode. NVARCHAR2 - это Unicode, но я подозреваю, что что-то не так хорошо играет в мире Unicode. Проверьте свой веб-сервер, своих клиентов, свою базу данных, все, что только можете придумать - я подозреваю, что вы обнаружите, что где-то на линии есть клиент ASCII, который не говорит должным образом на Unicode и запутывается о длине строки Unicode (32 символа Unicode занимают 64 байта (при условии UTF-16)).

Удачи.

1 голос
/ 07 мая 2010

SERVICE_ID NVARCHAR2 (36) NOT NULL

Ваш SQL Developer настроен на использование многобайтового набора символов?Дикие догадки, тем более, что я ожидаю, что бросит ORA-12899: value too large for column, а не ORA-00972.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...