我有一个查询,比如:
SELECT column as averyveryveryverylongalias (more than 30 characters)
FROM Table_name
它返回错误ORA-00972 identifier is too long,有什么技巧可以让它在不缩短别名的情况下工作吗?
谢谢
发布于 2010-06-21 22:36:20
不可以,在Oracle版本12.2之前,标识符的长度不允许超过30个字符。参见the Oracle SQL Language Reference。
然而,from version 12.2 they can be up to 128 bytes long. (注意:字节,而不是字符)。
发布于 2015-08-13 01:39:51
该错误也是由对引号和单引号的古怪处理引起的。若要在查询中包含单引号,请使用双单引号。
这不管用
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;
发布于 2013-04-19 16:19:21
Oracle存储标识符名称的对象(例如,用户的表名存储在名为USER_TABLES的表中,用户的列名存储在名为USER_TAB_COLUMNS的表中),名称列(例如,USER_TABLES中的TABLE_NAME )大小为Varchar2(30)...and它在对象或标识符的所有系统表中都是统一的--
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
https://stackoverflow.com/questions/3085562
复制相似问题