Create Table as Select 是否保留了 Oracle 中的列顺序?
Does Create Table as Select preserves columns order in Oracle?
我正在使用以下语句创建包含数据的副本 table。但我很想知道这个语句是否保留 new_table 中 old_table 的列顺序。因为我需要稍后使用 MINUS 语句比较 2 tables 的一些列数据。
CREATE TABLE new_table
AS
SELECT *
FROM old_table
下面是用来比较的减号语句。在以下语句中,从 ALL_TAB_COLUMNS 元数据 table.
中查询列
SELECT COUNT(*) FROM (SELECT cols FROM old_table MINUS (SELECT cols FROM 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'
我的问题是,当使用上述 CREATE TABLE new_table AS SELECT 语句复制时,new_table 和 old_table 中的列顺序是否都保留了?
是的,新 table 的列的顺序与您的 select
查询的顺序完全相同。
我正在使用以下语句创建包含数据的副本 table。但我很想知道这个语句是否保留 new_table 中 old_table 的列顺序。因为我需要稍后使用 MINUS 语句比较 2 tables 的一些列数据。
CREATE TABLE new_table
AS
SELECT *
FROM old_table
下面是用来比较的减号语句。在以下语句中,从 ALL_TAB_COLUMNS 元数据 table.
中查询列SELECT COUNT(*) FROM (SELECT cols FROM old_table MINUS (SELECT cols FROM 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'
我的问题是,当使用上述 CREATE TABLE new_table AS SELECT 语句复制时,new_table 和 old_table 中的列顺序是否都保留了?
是的,新 table 的列的顺序与您的 select
查询的顺序完全相同。