Migration issue Oracle: ORA-00972: identifier is too long

1
0
-1

Hello,

I'm doing a migration and I have the following problem:

| Execute migration step: Add new index 'idx_fni_activity_instance_id_kind' on 'flownode_instance' table

[INFO] Executing request: CREATE INDEX idx_fni_activity_instance_id_kind ON flownode_instance (activityInstanceId, kind, tenantid)

Dec 03, 2020 4:33:03 PM groovy.sql.Sql execute

WARNING: Failed to execute: CREATE INDEX idx_fni_activity_instance_id_kind ON flownode_instance (activityInstanceId, kind, tenantid) because: ORA-00972: identifier is too long

[ERROR] ORA-00972: identifier is too long

The Oracle database has been upgraded to 19c

I'm using the last 2.53 version of migration tool

Thank you for your help,

Regards

2 answers

1
+1
-1
This one is the BEST answer!

Hi Enrico.

This is most strange, because by default Oracle Database 19c does support long identifiers (of up to 128 bytes).

However, Oracle databases have this initialisation parameter (COMPATIBLE) that allows you to force your database to work in a compatible mode with a given previous version. Which means that, if you set this parameter and the version you choose your 19c to be compatible with didn't support the long identifiers (e.g. any version < 12.2), then your Oracle 19c will not support the long identifiers either.

SQL> SELECT name, value FROM v$parameter
         WHERE name = 'compatible';

1
0
-1

https://stackoverflow.com/questions/756558/what-is-the-maximum-length-of...

you may give a try to ORA_MAX_NAME_LEN parameter since it appears that 30 is default max length and "idx_fni_activity_instance_id_kind" is 34 char length

you may open a bug for this, since it requires to change oracle default settings

Notifications