2017-10-16 4 views
0

표 t1은 분할되어 있고 데이터를 가지고 있습니다.오라클 12c - 어떻게 첫 번째 테이블에있는 모든 데이터, 파티션 및 인덱스와 기존 테이블을 새 테이블 양식을 만들 수 있습니까?

CREATE TABLE t2 
TABLESPACE ts1 
    AS 
select * from t1; 

그러나이 사본의 모든 데이터를하지만 T1과 같이 파티션을 생성하지 않습니다

나는 T1에서 T2 로의 데이터를 전송하려면이 명령을 사용하고 있습니다. 모든 데이터와 파티션 및 색인을 t1에서 t2로 복사하는 명령이 있습니까?

+0

다음을보십시오. http://www.dba-oracle.com/oracle_tips_dbms_metadata.htm. 나는 그것이 당신의 질문에 대답하기를 바랍니다. – g00dy

답변

1

dbms_metadata을 사용하면 전체 구조를 얻을 수 있습니다.

SELECT dbms_metadata.get_ddl('TABLE', 'SOURCE_TABLE_NAME') FROM DUAL; 

이 쿼리에서 생성 된 DDL을 실행하여 테이블 이름을 새 테이블 이름으로 바꿉니다.

당신의 SOURCE_TABLE 다음

SELECT dbms_metadata.get_ddl('TABLE', 'SOURCE_TABLE_NAME', 'SOURCE_SCHEMA_NAME') FROM DUAL; 
-1

, 다른 스키마에 그것은 동일한 스키마에 할 수없는 경우 -이 객체와 실패는 이미 오류가 존재한다. 다른 스키마 인 경우 다음을 시도하십시오. 다른 스키마로 가져 오는 동안 테이블의 이름을 바꾸어 가져 오기 및 가져 오기.

그렇지 않으면 DBMS_METADATA.GET_DDL을 사용해보십시오.