Я столкнулся с этой проблемой при работе с ORACLE 10g. Я прочитал ответы на этот вопрос здесь ( ora-00972 идентификатор слишком длинный оракул 10g ) при переполнении стека, но они не сработали для меня. Возможно, у меня другая ситуация.
Теперь у меня были следующие имена таблиц: WIMAX_TRAFFIC_STATS
и WIMAX_RADIO_STATS
. Когда я попытался вставить в них данные через ODBC-соединение с Erlang/OTP
, я получил ошибку:
{error,"[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-00972: <br>identifier is toolong SQLSTATE IS: HY000"}
Итак, я искал в Google и нашел ответы о том, что, возможно, имена моих таблиц слишком длинные. Итак, я сделал это ниже и попробовал еще раз:
SQL> ALTER TABLE WIMAX_RADIO_STATS RENAME TO WR;
Table altered.
SQL> ALTER TABLE WIMAX_TRAFFIC_STATS RENAME TO WT;
Table altered.
Я все еще получаю ту же ошибку. Другие источники говорят, что это могут быть данные, которые я пишу в некоторых из моих столбцов. Мои определения таблиц здесь ниже:
SQL> DESCRIBE WT;
Name Null? Type
----------------------------------------- -------- -----------------
SDATE DATE
ELEMENT_TYPE VARCHAR2(50)
MANAGED_ELEMENT VARCHAR2(50)
USER_LABEL VARCHAR2(200)
JOB_ID VARCHAR2(50)
MEAS_TYPE VARCHAR2(50)
MEAS_VALUE VARCHAR2(50)
Ни одно из значений данных, которые я пишу там, не длиннее определения длины столбца. Мне действительно интересно. Я пытаюсь записать в таблицу строки длиной менее 10 символов, но все еще получаю эту ошибку. Помогите, пожалуйста, по телу!
EDIT
Запрос запроса SAMPLE выглядит следующим образом:
<b>INSERT INTO</b> WT(element_type,managed_element,user_label,job_id,meas_type,<br>meas_value) <b>VALUES</b>("BreezeMAX MBS",<br>"SubNetwork=ASN,MeContext=,ManagedElement=MBS.172.17.9.9",<br>"BMAX-Shoal2[MTN-Egate]",<br>"99297","rbMngmntPortPacketsDiscardedOnRx","0");
Поле SDATE по умолчанию установлено как sysdate