[Oracle] 테이블/메타데이터 RENAME 시 테이블/메타데이터 간 관계 영향도 테스트

728x90

요약

* datapump로 메타데이터 추출 시 인덱스, 제약조건, 트리거, 권한, 코멘트가 추출됨(뷰/시노님/PLSQL은 안됨)

* 테이블 rename 시 인덱스, 제약조건, 권한, 코멘트는 기존 테이블을 그대로 따라감

* 인덱스, 제약조건은 필요 시 변경하면 됨

* 트리거는 rename 시 VALID로 활성화됨

* 뷰/시노님/PLSQL은 재컴파일 해야 VALID로 활성화됨

* 자식 FK는 재생성(DROP/ADD) 필요

 

# 테스트 환경 준비

```
-- DBA 권한 계정으로 접속
sqlplus / as sysdba

-- 테스트 유저 생성
CREATE USER test_swap IDENTIFIED BY test_swap
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP
  QUOTA UNLIMITED ON USERS;

GRANT CONNECT, RESOURCE, DBA TO test_swap;
GRANT EXECUTE ON UTL_RECOMP TO test_swap;
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO test_swap;

-- 권한 부여용 유저 2명 (권한 승계 검증용)
CREATE USER app_user IDENTIFIED BY app_user;
GRANT CREATE SESSION TO app_user;

CREATE USER read_user IDENTIFIED BY read_user;
GRANT CREATE SESSION TO read_user;

EXIT;
```

-- OS 레벨에서 DATA_PUMP_DIR 위치 확인
SELECT directory_path FROM dba_directories WHERE directory_name = 'DATA_PUMP_DIR';

DIRECTORY_PATH
--------------------------------------------------------------------------------
/oracle/app/oracle/admin/ORCL/dpdump/


# 테스트 테이블 A 생성

```
CONNECT test_swap/test_swap

-- 부모 테이블 A
CREATE TABLE A (
  msg_id      NUMBER         CONSTRAINT pk_a PRIMARY KEY,
  user_id     VARCHAR2(50)   NOT NULL,
  msg_type    VARCHAR2(10)   CONSTRAINT ck_a_type CHECK (msg_type IN ('SMS','MMS','PUSH')),
  msg_body    CLOB,
  status_cd   VARCHAR2(2)    DEFAULT 'N' NOT NULL,
  send_dt     DATE           DEFAULT SYSDATE NOT NULL,
  ext_key     VARCHAR2(100)  CONSTRAINT uk_a_extkey UNIQUE
)
LOB (msg_body) STORE AS SECUREFILE lob_a_msgbody (
  ENABLE STORAGE IN ROW
  CHUNK 8192
  NOCOMPRESS
);

-- 보조 인덱스
CREATE INDEX idx_a_userid  ON A(user_id);
CREATE INDEX idx_a_senddt  ON A(send_dt);

-- 코멘트
COMMENT ON TABLE  A             IS 'UMS 발송 이력 테이블';
COMMENT ON COLUMN A.msg_id      IS '메시지 ID (PK)';
COMMENT ON COLUMN A.user_id     IS '사용자 ID';
COMMENT ON COLUMN A.msg_body    IS '메시지 본문 (CLOB)';
COMMENT ON COLUMN A.status_cd   IS '발송상태 N:대기, S:성공, F:실패';

-- 트리거
CREATE OR REPLACE TRIGGER trg_a_biu
BEFORE INSERT OR UPDATE ON A
FOR EACH ROW
BEGIN
  IF INSERTING AND :NEW.send_dt IS NULL THEN
    :NEW.send_dt := SYSDATE;
  END IF;
  IF UPDATING THEN
    :NEW.status_cd := UPPER(:NEW.status_cd);
  END IF;
END;
/

-- 권한 부여
GRANT SELECT, INSERT, UPDATE ON A TO app_user;
GRANT SELECT                   ON A TO read_user;

-- 자식 FK 테이블 (자식 FK 처리 검증용)
CREATE TABLE A_DETAIL (
  detail_id  NUMBER PRIMARY KEY,
  msg_id     NUMBER NOT NULL,
  recv_dt    DATE,
  CONSTRAINT fk_adetail_msgid FOREIGN KEY (msg_id) REFERENCES A(msg_id)
);

-- 의존 객체 (뷰, 시노님)
CREATE OR REPLACE VIEW V_A_RECENT AS
  SELECT msg_id, user_id, status_cd, send_dt
    FROM A
   WHERE send_dt >= SYSDATE - 30;

CREATE OR REPLACE SYNONYM syn_a FOR A;

-- 샘플 데이터 (1만 건, 그중 최근 30일치만 남길 예정)
BEGIN
  FOR i IN 1..10000 LOOP
    INSERT INTO A (msg_id, user_id, msg_type, msg_body, status_cd, send_dt, ext_key)
    VALUES (
      i,
      'user_' || MOD(i,100),
      CASE MOD(i,3) WHEN 0 THEN 'SMS' WHEN 1 THEN 'MMS' ELSE 'PUSH' END,
      'message body ' || i,
      CASE MOD(i,2) WHEN 0 THEN 'S' ELSE 'F' END,
      SYSDATE - MOD(i, 365),
      'ext_' || i
    );
  END LOOP;
  COMMIT;
END;
/

-- 통계
EXEC DBMS_STATS.GATHER_TABLE_STATS(USER, 'A');
```


-- 사전 상태 저장 (검증용 베이스라인)
SELECT COUNT(*) total_cnt FROM A;
SELECT COUNT(*) recent_cnt FROM A WHERE send_dt >= SYSDATE - 30;

SELECT COUNT(*) total_cnt FROM A;

 TOTAL_CNT
----------
     10000


SELECT COUNT(*) recent_cnt FROM A WHERE send_dt >= SYSDATE - 30;

RECENT_CNT
----------
       839


-- 메타데이터 베이스라인 추출
SELECT object_name, object_type, status FROM user_objects 
 WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;


OBJECT_NAME                    OBJECT_TYPE             STATUS
------------------------------ ----------------------- -------
IDX_A_SENDDT                   INDEX                   VALID
IDX_A_USERID                   INDEX                   VALID
PK_A                           INDEX                   VALID
UK_A_EXTKEY                    INDEX                   VALID
LOB_A_MSGBODY                  LOB                     VALID
SYN_A                          SYNONYM                 VALID
A                              TABLE                   VALID
A_DETAIL                       TABLE                   VALID
TRG_A_BIU                      TRIGGER                 VALID
V_A_RECENT                     VIEW                    VALID

10 rows selected.


SELECT constraint_name, constraint_type, status, validated FROM user_constraints 
 WHERE table_name = 'A' ORDER BY constraint_name;


CONSTRAINT_NAME                C STATUS   VALIDATED
------------------------------ - -------- -------------
CK_A_TYPE                      C ENABLED  VALIDATED
PK_A                           P ENABLED  VALIDATED
SYS_C006376                    C ENABLED  VALIDATED
SYS_C006377                    C ENABLED  VALIDATED
SYS_C006378                    C ENABLED  VALIDATED
UK_A_EXTKEY                    U ENABLED  VALIDATED

6 rows selected.


SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'A';


INDEX_NAME                     UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063643C00004$$       UNIQUE    VALID
PK_A                           UNIQUE    VALID
UK_A_EXTKEY                    UNIQUE    VALID
IDX_A_USERID                   NONUNIQUE VALID
IDX_A_SENDDT                   NONUNIQUE VALID




SELECT grantee, privilege FROM user_tab_privs WHERE table_name = 'A' ORDER BY grantee, privilege;

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
APP_USER                       INSERT
APP_USER                       SELECT
APP_USER                       UPDATE
READ_USER                      SELECT


# DataPump로 메타데이터 추출

expdp test_swap/test_swap \
  TABLES=test_swap.A \
  CONTENT=METADATA_ONLY \
  DIRECTORY=DATA_PUMP_DIR \
  DUMPFILE=A_meta.dmp \
  LOGFILE=A_meta_exp.log \
  REUSE_DUMPFILES=YES

# DDL을 SQL 파일로 추출 (실제 import는 안 함)
impdp test_swap/test_swap \
  DIRECTORY=DATA_PUMP_DIR \
  DUMPFILE=A_meta.dmp \
  SQLFILE=A_meta.sql \
  LOGFILE=A_meta_imp.log

-- NEW 테이블 생성
CONNECT test_swap/test_swap


CREATE TABLE NEW
LOB (msg_body) STORE AS SECUREFILE (ENABLE STORAGE IN ROW CHUNK 8192 NOCOMPRESS)
NOLOGGING
PARALLEL 4
AS
SELECT * FROM A
 WHERE send_dt < TO_DATE('2026-06-16 14:30:00','YYYY-MM-DD HH24:MI:SS') - 30;

-- 적재량 확인
SELECT COUNT(*) FROM NEW;

  COUNT(*)
----------
      9161

--DDL 스크립트 수정
테이블명 A를 NEW로 수정


--DDL 실행
@A_meta.sql


-- 결과 확인
CONNECT test_swap/test_swap

set lines 300 pages 1000

col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='NEW';

CONSTRAINT_NAME                C STATUS
------------------------------ - --------
SYS_C006407                    C ENABLED
SYS_C006408                    C ENABLED
SYS_C006409                    C ENABLED
CK_NEW_TYPE                    C ENABLED
UK_NEW_EXTKEY                  U ENABLED
PK_NEW                         P ENABLED


col index_name for a30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name='NEW';

INDEX_NAME                     UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063788C00004$$       UNIQUE    VALID
IDX_NEW_SENDDT                 NONUNIQUE VALID
IDX_NEW_USERID                 NONUNIQUE VALID
UK_NEW_EXTKEY                  UNIQUE    VALID
PK_NEW                         UNIQUE    VALID


col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='NEW' ORDER BY grantee;

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
APP_USER                       INSERT
APP_USER                       SELECT
APP_USER                       UPDATE
READ_USER                      SELECT


SELECT comments FROM user_tab_comments WHERE table_name='NEW';

COMMENTS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
UMS ?????????????????? ?????????????????? ???????????????????????????


-- 최신 데이터 보강
INSERT /*+ APPEND PARALLEL(NEW, 4) */ INTO NEW
SELECT /*+ PARALLEL(A, 4) */ * FROM A
 WHERE send_dt >= TO_DATE('2026-06-16 14:30:00','YYYY-MM-DD HH24:MI:SS') - 30;

839 rows created.


COMMIT;

SELECT COUNT(*) FROM NEW;

  COUNT(*)
----------
     10000


자식 FK DISABLE
A의 PK를 참조하는 FK는 OBJECT_ID 기반이므로 RENAME 후에도 A_OLD를 참조하게 됩니다. 스왑 전 DISABLE → 스왑 후 새 A 참조로 재정의해야 합니다.

SELECT constraint_name, status FROM user_constraints
 WHERE constraint_type='R' AND r_constraint_name='PK_A';

CONSTRAINT_NAME                STATUS
------------------------------ --------
FK_ADETAIL_MSGID               ENABLED


ALTER TABLE A_DETAIL DISABLE CONSTRAINT fk_adetail_msgid;

SELECT constraint_name, status FROM user_constraints
 WHERE constraint_type='R' AND r_constraint_name='PK_A';

CONSTRAINT_NAME                STATUS
------------------------------ --------
FK_ADETAIL_MSGID               DISABLED

## RENAME 시작
ALTER TABLE A RENAME TO BAK;

ALTER TABLE NEW RENAME TO A;

RENAME을 하게 되면 인덱스, 제약조건, 트리거, 권한, 코멘트는 자동으로 변경된 테이블명을 따라감
시노님과 뷰는 안 따라감

-- 메타데이터 베이스라인 추출
SELECT object_name, object_type, status FROM user_objects 
 WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;

OBJECT_NAME                    OBJECT_TYPE             STATUS
------------------------------ ----------------------- -------
IDX_BAK_SENDDT                 INDEX                   VALID
IDX_BAK_USERID                 INDEX                   VALID
PK_BAK                         INDEX                   VALID
UK_BAK_EXTKEY                  INDEX                   VALID
LOB_A_MSGBODY                  LOB                     VALID
SYN_A                          SYNONYM                 INVALID
A                              TABLE                   VALID
A_DETAIL                       TABLE                   VALID
BAK                            TABLE                   VALID
TRG_A_BIU                      TRIGGER                 INVALID
V_A_RECENT                     VIEW                    INVALID

11 rows selected.

--NEW 테이블을 조회하면 아무것도 안 뜸
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='NEW';

no rows selected

--A 테이블을 조회하면 NEW 인덱스가 조회됨

SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'A';

INDEX_NAME                     UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063788C00004$$       UNIQUE    VALID
IDX_NEW_SENDDT                 NONUNIQUE VALID
IDX_NEW_USERID                 NONUNIQUE VALID
UK_NEW_EXTKEY                  UNIQUE    VALID
PK_NEW                         UNIQUE    VALID

--BAK 테이블을 조회하면 A 테이블의 인덱스가 조회됨
COL INDEX_NAME FOR A30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'BAK';

INDEX_NAME                     UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063643C00004$$       UNIQUE    VALID
PK_A                           UNIQUE    VALID
UK_A_EXTKEY                    UNIQUE    VALID
IDX_A_USERID                   NONUNIQUE VALID
IDX_A_SENDDT                   NONUNIQUE VALID

col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='NEW';

no rows selected

col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='A';

CONSTRAINT_NAME                C STATUS
------------------------------ - --------
SYS_C006407                    C ENABLED
SYS_C006408                    C ENABLED
SYS_C006409                    C ENABLED
CK_NEW_TYPE                    C ENABLED
UK_NEW_EXTKEY                  U ENABLED
PK_NEW                         P ENABLED


col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='BAK';

CONSTRAINT_NAME              C STATUS
---------------------------- - --------
SYS_C006376                  C ENABLED
SYS_C006377                  C ENABLED
SYS_C006378                  C ENABLED
CK_A_TYPE                    C ENABLED
PK_A                         P ENABLED
UK_A_EXTKEY                  U ENABLED

col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='NEW';

no rows selected


col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='A';

TRIGGER_NAME                   TRIGGER_TYPE     STATUS
------------------------------ ---------------- --------
TRG_NEW_BIU                    BEFORE EACH ROW  ENABLED


col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='BAK';

TRIGGER_NAME                   TRIGGER_TYPE     STATUS
------------------------------ ---------------- --------
TRG_A_BIU                      BEFORE EACH ROW  ENABLED


col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='BAK' ORDER BY grantee;

SELECT comments FROM user_tab_comments WHERE table_name='BAK';


--A 테이블 메타데이터 변경
ALTER TABLE BAK RENAME CONSTRAINT CK_A_TYPE TO CK_BAK_TYPE;
ALTER TABLE BAK RENAME CONSTRAINT PK_A TO PK_BAK;
ALTER TABLE BAK RENAME CONSTRAINT UK_A_EXTKEY TO UK_BAK_EXTKEY;

col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='BAK';

CONSTRAINT_NAME                C STATUS
------------------------------ - --------
SYS_C006376                    C ENABLED
SYS_C006377                    C ENABLED
SYS_C006378                    C ENABLED
CK_BAK_TYPE                    C ENABLED
PK_BAK                         P ENABLED
UK_BAK_EXTKEY                  U ENABLED


ALTER INDEX PK_A RENAME TO PK_BAK;
ALTER INDEX UK_A_EXTKEY RENAME TO UK_BAK_EXTKEY;
ALTER INDEX IDX_A_USERID RENAME TO IDX_BAK_USERID;
ALTER INDEX IDX_A_SENDDT RENAME TO IDX_BAK_SENDDT;

COL INDEX_NAME FOR A30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'BAK';

INDEX_NAME                     UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063643C00004$$       UNIQUE    VALID
PK_BAK                         UNIQUE    VALID
UK_BAK_EXTKEY                  UNIQUE    VALID
IDX_BAK_USERID                 NONUNIQUE VALID
IDX_BAK_SENDDT                 NONUNIQUE VALID


ALTER TRIGGER trg_a_biu RENAME TO trg_bak_biu;

col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='BAK';

TRIGGER_NAME                   TRIGGER_TYPE     STATUS
------------------------------ ---------------- --------
TRG_BAK_BIU                    BEFORE EACH ROW  ENABLED

col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='BAK' ORDER BY grantee;

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
APP_USER                       INSERT
APP_USER                       SELECT
APP_USER                       UPDATE
READ_USER                      SELECT


SELECT comments FROM user_tab_comments WHERE table_name='BAK';

COMMENTS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
UMS ?????? ?????? ?????????


--NEW 테이블 메타데이터 변경

-- 메타데이터 베이스라인 추출
SELECT object_name, object_type, status FROM user_objects 
 WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;

OBJECT_NAME                    OBJECT_TYPE             STATUS
------------------------------ ----------------------- -------
IDX_BAK_SENDDT                 INDEX                   VALID
IDX_BAK_USERID                 INDEX                   VALID
PK_BAK                         INDEX                   VALID
UK_BAK_EXTKEY                  INDEX                   VALID
LOB_A_MSGBODY                  LOB                     VALID
SYN_A                          SYNONYM                 INVALID
A                              TABLE                   VALID
A_DETAIL                       TABLE                   VALID
BAK                            TABLE                   VALID
TRG_A_BIU                      TRIGGER                 INVALID
V_A_RECENT                     VIEW                    INVALID

11 rows selected.


ALTER TABLE A RENAME CONSTRAINT CK_NEW_TYPE TO CK_A_TYPE;
ALTER TABLE A RENAME CONSTRAINT PK_NEW TO PK_A;
ALTER TABLE A RENAME CONSTRAINT UK_NEW_EXTKEY TO UK_A_EXTKEY;

col CONSTRAINT_NAME for a30
SELECT constraint_name, constraint_type, status FROM user_constraints WHERE table_name='A';

CONSTRAINT_NAME                C STATUS
------------------------------ - --------
SYS_C006407                    C ENABLED
SYS_C006408                    C ENABLED
SYS_C006409                    C ENABLED
CK_A_TYPE                      C ENABLED
UK_A_EXTKEY                    U ENABLED
PK_A                           P ENABLED

6 rows selected.

ALTER INDEX PK_NEW RENAME TO PK_A;
ALTER INDEX UK_NEW_EXTKEY RENAME TO UK_A_EXTKEY;
ALTER INDEX IDX_NEW_USERID RENAME TO IDX_A_USERID;
ALTER INDEX IDX_NEW_SENDDT RENAME TO IDX_A_SENDDT;

COL INDEX_NAME FOR A30
SELECT index_name, uniqueness, status FROM user_indexes WHERE table_name = 'A';

INDEX_NAME                     UNIQUENES STATUS
------------------------------ --------- --------
SYS_IL0000063788C00004$$       UNIQUE    VALID
IDX_A_SENDDT                   NONUNIQUE VALID
IDX_A_USERID                   NONUNIQUE VALID
UK_A_EXTKEY                    UNIQUE    VALID
PK_A                           UNIQUE    VALID


ALTER TRIGGER trg_new_biu RENAME TO trg_a_biu;

col TRIGGER_NAME for a30
SELECT TRIGGER_NAME, TRIGGER_TYPE, status FROM user_triggers WHERE table_name='A';

TRIGGER_NAME                   TRIGGER_TYPE     STATUS
------------------------------ ---------------- --------
TRG_A_BIU                      BEFORE EACH ROW  ENABLED

col grantee for a30
SELECT grantee, privilege FROM user_tab_privs WHERE table_name='A' ORDER BY grantee;

GRANTEE                        PRIVILEGE
------------------------------ ----------------------------------------
APP_USER                       INSERT
APP_USER                       SELECT
APP_USER                       UPDATE
READ_USER                      SELECT


SELECT comments FROM user_tab_comments WHERE table_name='A';

COMMENTS
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
UMS ?????????????????? ?????????????????? ???????????????????????????


SELECT object_name, object_type, status FROM user_objects 
 WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;

OBJECT_NAME                    OBJECT_TYPE             STATUS
------------------------------ ----------------------- -------
IDX_A_SENDDT                   INDEX                   VALID
IDX_A_USERID                   INDEX                   VALID
IDX_BAK_SENDDT                 INDEX                   VALID
IDX_BAK_USERID                 INDEX                   VALID
PK_A                           INDEX                   VALID
PK_BAK                         INDEX                   VALID
UK_A_EXTKEY                    INDEX                   VALID
UK_BAK_EXTKEY                  INDEX                   VALID
LOB_A_MSGBODY                  LOB                     VALID
SYN_A                          SYNONYM                 INVALID
A                              TABLE                   VALID
A_DETAIL                       TABLE                   VALID
BAK                            TABLE                   VALID
TRG_A_BIU                      TRIGGER                 VALID
TRG_BAK_BIU                    TRIGGER                 VALID
V_A_RECENT                     VIEW                    INVALID



# 자식 FK 재정의 및 의존 객체 재컴파일

-- 자식 FK 재생성 (새 A를 참조하도록)
ALTER TABLE A_DETAIL DROP CONSTRAINT fk_adetail_msgid;
ALTER TABLE A_DETAIL ADD CONSTRAINT fk_adetail_msgid
  FOREIGN KEY (msg_id) REFERENCES A(msg_id);

-- 뷰/시노님/PLSQL 재컴파일
ALTER VIEW V_A_RECENT COMPILE;
ALTER SYNONYM syn_a   COMPILE;
--EXEC UTL_RECOMP.RECOMP_SERIAL('TEST_SWAP');



SELECT object_name, object_type, status FROM user_objects
 WHERE object_name LIKE '%A%' OR object_name LIKE '%TRG_A%' ORDER BY object_type, object_name;

OBJECT_NAME                    OBJECT_TYPE             STATUS
------------------------------ ----------------------- -------
IDX_A_SENDDT                   INDEX                   VALID
IDX_A_USERID                   INDEX                   VALID
IDX_BAK_SENDDT                 INDEX                   VALID
IDX_BAK_USERID                 INDEX                   VALID
PK_A                           INDEX                   VALID
PK_BAK                         INDEX                   VALID
UK_A_EXTKEY                    INDEX                   VALID
UK_BAK_EXTKEY                  INDEX                   VALID
LOB_A_MSGBODY                  LOB                     VALID
SYN_A                          SYNONYM                 VALID
A                              TABLE                   VALID
A_DETAIL                       TABLE                   VALID
BAK                            TABLE                   VALID
TRG_A_BIU                      TRIGGER                 VALID
TRG_BAK_BIU                    TRIGGER                 VALID
V_A_RECENT                     VIEW                    VALID



SELECT index_name, tablespace_name, logging, degree, status from dba_indexes
where table_owner='TEST_SWAP' and table_name='BAK';

ALTER TABLE TEST_SWAP.A LOGGING NOPARALLEL;


728x90