ORA-00972-命名的字节名称过长
原因: An identifier with more than 30 characters was specified. #命名的字节名称过长
操作: Specify at most 30 characters
#对于oracle,表明、字段名、视图名等对象命名字节个数默认是限制在30个字节长度(g版本以下),一般情况下无法更改算固化设置的一种
desc user_tables;
#可以看到table_name varchar(30) 长度,查看表结构发现该表实际为一张视图,定位到根本来源就是obj$这张表
desc obj$
#可以再次看到name varchar(30)长度
尝试修改name时会报出ora-00701这是数据库字典字段,无法进行修改
下面提供一个长度对照表
| 数据库 | 表名长度限制 | 字段名长度限制 |
|---|---|---|
| oracle | 30 | 30 |
| mysql | 64 | 64 |
| db2 | 128 | 128 |
| access | 64 | 64 |
| sqlserver | 128 | 128 |

文章讨论了在Oracle中遇到ORA-00972错误的原因,即标识符(如表名、字段名)超过30个字节的限制。这个限制在Oracle的一些版本中是固定的。文章提到了可以查看user_tables和obj$表来检查表和视图的结构,并指出数据库字典字段无法修改。还提供了不同数据库系统中表名和字段名的长度限制对比。

8万+

被折叠的 条评论
为什么被折叠?



