Странная ошибка Oracle: идентификатор слишком длинный ORA-00972

я столкнулся с этой проблемой при работе с ORACLE 10g. Я прочитал ответы, данные на этот вопрос здесь (идентификатор ora-00972 слишком длинный oracle 10g) на переполнение стека, но они не работали для меня. Возможно, моя ситуация иная.

теперь у меня были эти названия таблиц:WIMAX_TRAFFIC_STATS и WIMAX_RADIO_STATS. Когда я попытался вставить данные в них через соединение ODBC с Erlang/OTP, i получил ошибку:

{error,"[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-00972: 
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.
Я все еще получаю ту же ошибку. Другие источники sya, что это могут быть данные, которые я пишу в некоторых из моих столбцов. Мои определения таблицы приведены ниже:

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 символов в таблице, но все еще получаю эту ошибку. некоторые тела помощь, пожалуйста !

редактировать

Пример запроса запроса выглядит следующим образом:

INSERT INTO WT(element_type,managed_element,user_label,job_id,meas_type,
meas_value) VALUES("BreezeMAX MBS",
"SubNetwork=ASN,MeContext=,ManagedElement=MBS.172.17.9.9",
"BMAX-Shoal2[MTN-Egate]",
"99297","rbMngmntPortPacketsDiscardedOnRx","0");

поле SDATE имеет значение по умолчанию sysdate

1 ответов


вы используете неправильные кавычки.

VALUES('BreezeMAX MBS',
       ^             ^

демо:

SQL> create table t (a varchar(100));
Table created.

SQL> insert into t(a) values ("qasdqsdqsdqsdqsdqsdqsdlmqmsldqsmldqsmldq");
insert into t(a) values ("qasdqsdqsdqsdqsdqsdqsdlmqmsldqsmldqsmldq")
                         *
ERROR at line 1:
ORA-00972: identifier is too long

SQL> insert into t(a) values ('qasdqsdqsdqsdqsdqsdqsdlmqmsldqsmldqsmldq');
1 row created.