Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 奇怪的Oracle错误:标识符太长ORA-00972_Sql_Oracle_Erlang_Odbc - Fatal编程技术网

Sql 奇怪的Oracle错误:标识符太长ORA-00972

Sql 奇怪的Oracle错误:标识符太长ORA-00972,sql,oracle,erlang,odbc,Sql,Oracle,Erlang,Odbc,我在使用ORACLE 10g时遇到过这个问题。我在这里()阅读了关于堆栈溢出的这个问题的答案,但它们对我不起作用。也许我的情况不同。 现在我有了这些表名:WIMAX\u-TRAFFIC\u-STATS和WIMAX\u-RADIO\u-STATS。当我尝试通过与的ODBC连接将数据插入其中时,出现错误: {error,"[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-00972: identifier is toolong SQL

我在使用ORACLE 10g时遇到过这个问题。我在这里()阅读了关于堆栈溢出的这个问题的答案,但它们对我不起作用。也许我的情况不同。

现在我有了这些表名:
WIMAX\u-TRAFFIC\u-STATS
WIMAX\u-RADIO\u-STATS
。当我尝试通过与的ODBC连接将数据插入其中时,出现错误: {error,"[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-00972:
identifier is toolong SQLSTATE IS: HY000"} {错误,“[DataDirect][ODBC Oracle Wire Protocol driver][Oracle]ORA-00972:
标识符为toolong SQLSTATE为:HY000”} 所以,我搜索了谷歌,发现答案是我的表名可能太长了。所以我在下面做了这个,然后再试一次: SQL> ALTER TABLE WIMAX_RADIO_STATS RENAME TO WR; Table altered. SQL> ALTER TABLE WIMAX_TRAFFIC_STATS RENAME TO WT; Table altered. SQL>将表WIMAX_RADIO_STATS重命名为WR; 桌子改了。 SQL>将表WIMAX_TRAFFIC_STATS重命名为WT; 桌子改了。 我仍然得到同样的错误。其他消息来源说这可能是我在一些专栏中写的数据。我的表格定义如下:

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) SQL>描述WT; 名称为空?类型 ----------------------------------------- -------- ----------------- 日期 元件类型VARCHAR2(50) 托管元素VARCHAR2(50) 用户标签VARCHAR2(200) 工作ID VARCHAR2(50) MEAS_型VARCHAR2(50) 测量值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"); 在WT(元素类型、托管元素、用户标签、作业id、测量类型、测量值)值中插入(“BreezeMAX MBS”、“SubNetwork=ASN、MeContext=、ManagedElement=MBS.172.17.9.9”、“BMAX-Shoal2[MTN Egate]”、
“99297”、“RBMNGMNTPortpacketsDiscaredonRx”、“0”);
SDATE字段的默认设置为
sysdate

您使用了错误的引号

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.