Ich verwende folgende Anweisung, um eine doppelte Tabelle mit Daten zu erstellen. Aber ich bin gespannt, ob diese Anweisung die Spaltenreihenfolge der old_table in der new_table unverändert beibehält. Da ich einige Spaltendaten von 2 Tabellen später mit MINUS-Anweisung vergleichen muss.Erstellt Create Table as Select die Spaltenreihenfolge in Oracle?
CREATE TABLE new_table
AS
SELECT *
FROM old_table
Unten ist die Minus-Anweisung zum Vergleich verwendet. In der folgenden Anweisung werden Spalten aus der Metadatentabelle ALL_TAB_COLUMNS abgefragt.
SELECT COUNT(*) FROM (SELECT cols FROM old_table MINUS (SELECT cols FROM new_table))
Unten ist die Metadatenabfrage, um Spaltenliste in der Reihenfolge zu erhalten.
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'new_table'
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'old_table'
Meine Frage, die beide new_table und OLD_TABLE wenn oben mit CREATE TABLE new_table AS SELECT-URL kopiert Spaltenreihenfolge in konserviert?
Können Sie mir eine Referenz oder einen Test geben, den ich als Proof-Note verwenden kann? Auch wenn ich das getestet habe und es funktioniert wie gesagt für meine Szenarien. Stellen Sie sicher, dass dies auf keinen Fall falsch funktioniert. :) – PraAnj
Ich kann keinen negativen Testfall erzeugen. Für meine Arbeit verwende ich CTAS regelmäßig und es funktioniert so. :) –
Danke für die Antwort. – PraAnj