ORA-00972标识符太长,别名列名

我有一个像这样的查询:

SELECT column as averyveryveryverylongalias (more than 30 characters) FROM Table_name

它返回的错误ORA-00972标识符太长 ,是否有任何提示,使其工作而不使别名更短?

谢谢

不,在Oracle 12.2之前,标识符的长度不能超过30个字符。 请参阅Oracle SQL语言参考 。

但是, 从版本12.2开始,它们可以长达128个字节。 (注意:字节,不是字符)。

这个错误也是由引用和单个qutoes的古怪处理引起的。 要在查询中包含单引号,请使用加倍的单引号。

这是行不通的

 select dbms_xmlgen.getxml("Select ....") XML from dual; 

或者这个

 select dbms_xmlgen.getxml('Select .. where something='red'..') XML from dual; 

但是这个工作

 select dbms_xmlgen.getxml('Select .. where something=''red''..') XML from dual; 

Oracle存储标识符名称的对象(例如,用户的表名存储在名为USER_TABLES的表中,并且用户的列名存储在名为USER_TAB_COLUMNS的表中),具有NAME列(例如TABLE_NAME在USER_TABLES中)大小为Varchar2(30)…并且在所有的对象或标识符的系统表中是统一的 –

  DBA_ALL_TABLES ALL_ALL_TABLES USER_ALL_TABLES DBA_PARTIAL_DROP_TABS ALL_PARTIAL_DROP_TABS USER_PARTIAL_DROP_TABS DBA_PART_TABLES ALL_PART_TABLES USER_PART_TABLES DBA_TABLES ALL_TABLES USER_TABLES DBA_TABLESPACES USER_TABLESPACES TAB DBA_TAB_COLUMNS ALL_TAB_COLUMNS USER_TAB_COLUMNS DBA_TAB_COLS ALL_TAB_COLS USER_TAB_COLS DBA_TAB_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS DBA_TAB_HISTOGRAMS ALL_TAB_HISTOGRAMS USER_TAB_HISTOGRAMS DBA_TAB_MODIFICATIONS ALL_TAB_MODIFICATIONS USER_TAB_MODIFICATIONS DBA_TAB_PARTITIONS ALL_TAB_PARTITIONS USER_TAB_PARTITIONS 

我使用Argos报告系统作为前端,Oracle使用后端。 我刚刚遇到了这个错误,它是由一个双引号的string和一个单引号引起的。 用单个replace双引号解决了问题。

如果您最近将springboot升级到1.4.3,则可能需要对yml文件进行更改:

1.3中的yml:

 jpa: hibernate: namingStrategy: org.hibernate.cfg.EJB3NamingStrategy 

1.4.3中的yml:

 jpa: hibernate: naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 

正如其他人所提到的,Oracle SQL中的名称必须less于或等于30个字符。 我会补充说,这个规则不仅适用于表名,而且也适用于字段名。 所以你有它。