SQL*Plus now supports object lengths of 128 bytes. In previous releases, the object length limit was 30 bytes and if you try to create object with length more than 30, it will throw error as ORA-00972: identifier is too long.
Oracle 12.2 increases the maximum size of most identifiers from 30 to 128 bytes, which makes migration from other database engines easier.
SQL> create table "this_is_a_table_with_long_identifier" as select * from dual; Table created. SQL> alter table "this_is_a_table_with_long_identifier" add this_is_a_column_with_long_identifier number; Table altered.
The same command i tried to run in previous Oracle 12.1.0.2 database.
create table "this_is_a_table_with_long_identifier" as select * from dual; ORA-00972: identifier is too long
You can describe the dba_table and check the length of columns.( In oracle 12.2)
SQL> desc dba_objects Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER VARCHAR2(128) OBJECT_NAME VARCHAR2(128) SUBOBJECT_NAME VARCHAR2(128) SQL> desc dba_tables Name Null? Type ----------------------------------------- -------- ---------------------------- OWNER NOT NULL VARCHAR2(128) ----- >> TABLE_NAME NOT NULL VARCHAR2(128) ----- >> TABLESPACE_NAME VARCHAR2(30) CLUSTER_NAME VARCHAR2(128) IOT_NAME VARCHAR2(128)