2017-11-07 12 views
0

다음 명령문을 사용하여 데이터가있는 중복 테이블을 만듭니다. 그러나이 문장이 new_table에서 old_table의 열 순서를 그대로 유지하는지 궁금합니다. MINUS 문을 사용하여 나중에 두 개의 테이블 열 데이터를 비교해야합니다.Select Table as Select는 Oracle에서 열 순서를 유지합니까?

CREATE TABLE new_table 
AS 
SELECT * 
FROM old_table 

다음은 비교하는 데 사용되는 빼기 문입니다. 다음 명령문에서 col은 ALL_TAB_COLUMNS 메타 데이터 테이블에서 쿼리됩니다.

SELECT COUNT(*) FROM (SELECT cols FROM old_table MINUS (SELECT cols FROM new_table)) 

다음은 순서대로 열 목록을 가져 오는 메타 데이터 쿼리입니다. AS SELECT 문은 위에서 언급 한 표 NEW_TABLE를 생성하여 복사 할 때

SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'new_table' 
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'old_table' 

내 질문은, 열 순서는 NEW_TABLE 및 OLD_TABLE 모두 보존되어 있습니까?

답변

2

예, 새로 만들기 테이블의 열은 정확히 select 검색어와 같습니다.

+0

증거 자료로 사용할 수있는 참조 또는 테스트를 제공 할 수 있습니까? 비록 내가 이것을 테스트하고 당신이 내 시나리오에 대해 말한대로 일하고있다. 어떤 경우에도 이것이 올바르게 작동하지 않는지 확인하고 싶습니다. :) – PraAnj

+0

나는 부정적인 테스트 케이스를 생산하지 않습니다. 제 일을 위해 정기적으로 CTAS를 사용합니다. :) –

+0

답변 주셔서 감사합니다. – PraAnj