RSA Identity Governance and Lifecycle - 702 Migration fails with 'ORA-02260: table can have only one primary key'
2 years ago
Originally Published: 2017-11-14
Article Number
000041603
Applies To
RSA Product Set: RSA Identity Governance and Lifecycle
RSA Version/Condition: 7.0.2

 
Issue
Migrating a database from a previous version to 7.0.2 fails with the following error in the migrate.log:
 
SQL/line#: /home/oracle/wildfly/domain/servers/server-one/tmp/vfs/deployment/deploymentd323c87af1301dbd/aveksa.war-6c4b34db36bf38a4/WEB-INF/database/Create Scripts/Create_Constraints_Interim.sql(292):
Start time [Sat Nov 04 10:17:27 CDT 2017]
BEGIN
    IF (Migration_Utils_Pkg.ConstraintDoesNotExist('T_AV_ACCOUNTS', 'PK_T_MASTER_ACCOUNT_ID')) THEN
        EXECUTE IMMEDIATE 'ALTER TABLE T_AV_ACCOUNTS
            ADD CONSTRAINT PK_T_MASTER_ACCOUNT_ID
            PRIMARY KEY (ID) USING INDEX
            TABLESPACE INDX_1M LOGGING ENABLE';
    END IF;
END;
java.sql.SQLSyntaxErrorException: ORA-02260: table can have only one primary key
ORA-06512: at line 3

	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)

 
Cause
Table T_AV_ACCOUNTS has a PK (primary key) and two FKs (foreign key) incorrectly prefaced with "OLD".
Resolution
Drop the invalid constraints from T_AV_ACCOUNTS and restart the migration.

1. As  'avuser' run this SQL:
ALTER TABLE t_av_accounts
DROP CONSTRAINT old_t_master_account_id;
ALTER TABLE t_av_accounts
DROP CONSTRAINT old_t_acc_adc_id_t_dc_dcid;
ALTER TABLE t_av_accounts
DROP CONSTRAINT old_t_acc_app_id_t_apps_id;

2. Enter the migration password in the Initialization Status screen to restart the migration.