2011-11-01 14 views
8

ओरेकल 10 जी के साथ काम करते समय मुझे इस समस्या का सामना करना पड़ा है। मैंने यहां इस प्रश्न को दिए गए उत्तरों को पढ़ा है (ora-00972 identifier is too long oracle 10g) स्टैक ओवरफ़्लो पर लेकिन उन्होंने मेरे लिए काम नहीं किया है। शायद मेरी स्थिति अलग है।
अजीब ओरेकल त्रुटि: पहचानकर्ता बहुत लंबा ओआरए -00 9 72

अब मेरे पास इन तालिका नाम थे: WIMAX_TRAFFIC_STATS और WIMAX_RADIO_STATS। जब मैंने Erlang/OTP के साथ ओडीबीसी कनेक्शन के माध्यम से डेटा डालने का प्रयास किया, तो मुझे त्रुटि मिली:

 
{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

+2

गलत क्वेरी और डेटा प्रदान करें। –

उत्तर

18

तुम गलत उद्धरण का उपयोग कर रहे सेट है।

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. 
संबंधित मुद्दे

 संबंधित मुद्दे