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の両方に保存されていますか?
私が証拠として使用できる参考資料やテストはありますか?私はこれをテストしていますが、あなたが私のシナリオについて言ったように働いています。いずれにせよ、これが正しく動作しないことを確認したい。 :) – PraAnj
否定的なテストケースは生成できません。私の仕事のために、私は定期的にCTASを使用しています。 :) –
答えをありがとう。 – PraAnj