Strange Oracle error: Identifier too long ORA-00972

29,557

You're using the wrong quotes.

VALUES('BreezeMAX MBS',
       ^             ^

Demo:

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.
Share:
29,557
Muzaaya Joshua
Author by

Muzaaya Joshua

Software/Telecommunications engineer. Spend my free time enjoying Erlang, NoSQL (CouchDB, RIAK, Couchbase e.t.c.), Web Sockets, JavaScript, HTML5, Python3.x, and the other main-stream world of Java, Oracle, MySQL e.t.c.

Updated on June 03, 2022

Comments

  • Muzaaya Joshua
    Muzaaya Joshua less than a minute

    I have faced this problem when working with ORACLE 10g. I read the answers given to this question here (ora-00972 identifier is too long oracle 10g) on stack overflow but they have not worked for me. Perhaps my situation is different.

    Now i had these table names:WIMAX_TRAFFIC_STATS and WIMAX_RADIO_STATS. When i tried inserting data into them through an ODBC Connection with Erlang/OTP, i got the error:

    {error,"[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-00972: 
    identifier is toolong SQLSTATE IS: HY000"}
    So, i searched google and found answers saying that maybe my table names are too long. So i did this below and tried again:
    SQL> ALTER TABLE WIMAX_RADIO_STATS RENAME TO WR;
    Table altered.
    SQL> ALTER TABLE WIMAX_TRAFFIC_STATS RENAME TO WT;
    Table altered.
    
    I am still getting the same error. Other sources sya that it could be the data i am writing in some of my columns. My table definitions are here below:
    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)
    

    None of the data values i write there is longer than the column length definition. I really wonder. Am attempting to write strings that are less than 10 characters long in the table but yet still getting this error. Some body help, please !

    EDIT

    SAMPLE query request is as follows:

    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");

    The SDATE field has a default set as sysdate