Rem drv:
Rem
Rem $Header: user_model_schema_upgrade.sql 23-sep-2005.08:32:43 dcawley Exp $
Rem
Rem user_model_schema_upgrade.sql
Rem
Rem Copyright (c) 2005, Oracle. All rights reserved.
Rem
Rem NAME
Rem user_model_schema_upgrade.sql -
Rem
Rem DESCRIPTION
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem dcawley 09/23/05 - Add PK to flat table before redefinition
Rem dcawley 09/01/05 - Truncate flat role table
Rem dcawley 08/30/05 - dcawley_bug-4578680
Rem dcawley 08/30/05 - Ad header
Rem dcawley 08/29/05 - Created
Rem
Rem Create the new table definition for the MGMT_FLAT_ROLE_GRANTS table
CREATE TABLE MGMT_FLAT_ROLE_GRANTS_INT
(role_grantee VARCHAR2(256) NOT NULL,
role_name VARCHAR2(30) NOT NULL,
CONSTRAINT MGMT_FLAT_ROLE_GRANTS_PK_INT PRIMARY KEY (role_grantee, role_name)
) ORGANIZATION INDEX COMPRESS 1 MONITORING;
Rem redefine the table to be an IOT
DECLARE
no_errors NUMBER := 0;
BEGIN
BEGIN
-- Clean up the table since there was a problem with the previous
-- version of UPDATE_FLAT_ROLE_GRANTS
EXECUTE IMMEDIATE 'TRUNCATE TABLE MGMT_FLAT_ROLE_GRANTS';
-- Add a primary key to allow for redefinition to occur
EXECUTE IMMEDIATE 'ALTER TABLE MGMT_FLAT_ROLE_GRANTS ADD CONSTRAINT mgmt_flat_role_grants_pk PRIMARY KEY (role_grantee, role_name)';
DBMS_REDEFINITION.START_REDEF_TABLE('&&EM_REPOS_USER', 'MGMT_FLAT_ROLE_GRANTS', 'MGMT_FLAT_ROLE_GRANTS_INT');
DBMS_REDEFINITION.FINISH_REDEF_TABLE('&&EM_REPOS_USER', 'MGMT_FLAT_ROLE_GRANTS', 'MGMT_FLAT_ROLE_GRANTS_INT');
no_errors := 1;
EXCEPTION
WHEN OTHERS THEN
DBMS_REDEFINITION.ABORT_REDEF_TABLE('&&EM_REPOS_USER', 'MGMT_FLAT_ROLE_GRANTS', 'MGMT_FLAT_ROLE_GRANTS_INT');
EXECUTE IMMEDIATE 'ALTER TABLE MGMT_FLAT_ROLE_GRANTS DROP CONSTRAINT mgmt_flat_role_grants_pk';
END;
EXECUTE IMMEDIATE 'DROP TABLE MGMT_FLAT_ROLE_GRANTS_INT';
IF no_errors = 1 THEN
EXECUTE IMMEDIATE 'ALTER TABLE MGMT_FLAT_ROLE_GRANTS RENAME CONSTRAINT MGMT_FLAT_ROLE_GRANTS_PK_INT TO MGMT_FLAT_ROLE_GRANTS_PK';
EXECUTE IMMEDIATE 'ALTER INDEX MGMT_FLAT_ROLE_GRANTS_PK_INT RENAME TO MGMT_FLAT_ROLE_GRANTS_PK';
EXECUTE IMMEDIATE 'ALTER TABLE MGMT_FLAT_ROLE_GRANTS ADD CONSTRAINT mgmt_flat_role_grants_fk FOREIGN KEY (role_name) REFERENCES MGMT_ROLES (role_name) ON DELETE CASCADE';
END IF;
END;
/
Rem
Rem Indices for MGMT_ROLE_GRANTS table
Rem
CREATE INDEX mgmt_role_grants_idx1
ON MGMT_ROLE_GRANTS (role_name);