Consultor Eletrônico



Kbase 17773: ORACLE error 972, Identifier too long
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/2/1999
ORACLE error 972, Identifier too long

What is ORACLE error 972?

The length of ORACLE object names (TABLES, INDEXES, PROCEDURES, etc)
cannot exceed 30 characters. You may encounter ORACLE error
972 (ORA-00972: identifier is too long) during the Progress to
ORACLE migration. This could be caused by your field/tablenames
being too long or due to the suffix "##progress_recid" being
added, by the DataServer, to the unique index name in ORACLE.

To work around this ORACLE limitation, create a foreign name for
any field greater than 30 characters or index field greater than
16 characters. Progress will use the foreign name during the
migration if a foreign name is specified otherwise it will use the
field name. The following code sample shows how you can modify
the foreign name (_for-name).

This code is not supported by Progress. It is provide by Progress
soley to show you how for-name can be accessed.
/* sample code to update foreign name for table names */

for each _file:
if length (_file._file-name) > 14 then do:
display _file._file-name _file._for-name.
update _file._for-name.
end.


/* sample code to update foreign name of a field */

for each _file, each _field of _file:
if length(_field,_for-name) > 14 then do:
display _field._for-name _field._field-name.
update _field._for-name.
end.


For example, migrating a progress database with a progress table
called table20charsinlength. During the migration from Progress
to ORACLE, a unique index will be created called
table20charsinlength##progress_recid. When ORACLE tries to create
this UNIQUE INDEX the following error will appear on the screen:


CREATE UNIQUE INDEX table20charsinlength##progress_recid ON
table20charsinlength (progress_recid)
*
ERROR at line 1:
ORA-00972: identifier is too long


In this example, the table20charsinlength foreign-name (for-name)
could be assigned t20chrslong. With a _for-name of t20chrslong, the
unique indexed that would be created would be
t20chrslong##progress_recid. This would allow for a successful
migration.


Progress Software Technical Support Note # 17773