Oracle-将结果导出到Excel时,标题/列超过30个字符

时间:2019-07-08 13:53:54

标签: excel oracle export-to-excel ora-00972

我可以使用PL / SQL开发人员将Oracle(12.1)SQL结果导出到excel

但有时要求是为列/标题赋予有意义的名称

例如“过去21天的总金额”

很明显,它超过了30个字符并获得ORA-00972 identifier is too long

  

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

     

但是,从版本12.2开始,它们的最大长度为128个字节。 (注意:字节,而不是字符)。

  • 此问题也与较新的版本限制有关

我可以使用不同的列名导出而无需在输出excel中手动重命名吗?

编辑

当我定义不明确别名时,它可以超过30个限制,例如使用内部选择

(select 'longtext' from veryverylongtablename),

将创建列selectlongtextfromveryverylongtablename

'total amount for previous 21 days'||id 

将创建列totalamountforprevious21daysis

那么有没有一种显示有意义的标题的解决方法?

2 个答案:

答案 0 :(得分:0)

根据AllRoundAutomations,这是不可能的

  

在Oracle 12.1上这是不可能的。在Oracle 12.2和更高版本上,您可以使用长标识符。

答案 1 :(得分:0)

否,无法执行此操作。如文档中所述,对象名称(表,列,触发器,包等)的最大长度为 30个字节

http://docs.oracle.com/database/121/SQLRF/sql_elements008.htm#SQLRF51129

唯一的例外是数据库名称(最多8个字节)和数据库链接(128个字节)。

从Oracle Database 12.2开始,名称的最大长度增加到128个字节(提供的兼容设置为12.2或更高)。数据库名称仍限制为8个字节。磁盘组,可插拔数据库(PDB),回滚段,表空间和表空间集的名称限制为30个字节。