2017-11-07 26 views
0

次のステートメントを使用して、データを含む重複テーブルを作成しています。しかし、私はこの文がnew_tableのold_tableの列順序をそのまま保持するかどうかを知りたいのです。 MINUSステートメントを使用して2つのテーブルの列データを比較する必要があるためです。Select Table as Selectは、Oracleで列の順序を維持しますか?

CREATE TABLE new_table 
AS 
SELECT * 
FROM old_table 

以下は比較に使用されるマイナスステートメントです。次の文では、ALL_TAB_COLUMNSメタデータ表から列を問い合せます。

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

以下は、順序で列リストを取得するためのメタデータクエリです。 AS SELECT文は、上記の表NEW_TABLEをCREATE使用してコピーする場合

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

関連する問題