oracle丢弃的表仍然存在

oracle丢弃的表仍然存在,oracle,plsql,Oracle,Plsql,我创建了一个表作为select。 A列、B列、C列 然后我放弃了它,即使使用了清除命令。 我添加了一列B2 A列、B列、B2列、C列 并以Select命令的形式运行创建表。 当我查询时,从newtable中选择* A列、B列、C列、B2列 为什么?为什么B2列不在我创建它的地方,在B&C之间。这是一个令人头痛的问题,因为我有一个包含75列的表,我想查看前面附近的数据。多谢各位 create table NewTable1 nologging parallel 8 compress as SEL

我创建了一个表作为select。 A列、B列、C列 然后我放弃了它,即使使用了清除命令。 我添加了一列B2 A列、B列、B2列、C列 并以Select命令的形式运行创建表。 当我查询时,从newtable中选择*

A列、B列、C列、B2列 为什么?为什么B2列不在我创建它的地方,在B&C之间。这是一个令人头痛的问题,因为我有一个包含75列的表,我想查看前面附近的数据。多谢各位

create table NewTable1 nologging parallel 8 compress as 
SELECT ColA, ColB, ColC from table;

DROP TABLE NewTable1  PURGE;

create table NewTable1 nologging parallel 8 compress as 
SELECT ColA, ColB, ColB2, ColC from table;

表DDL和您的CTAS查询将使我们更容易帮助您

但您可以查看表的所有列。该视图中有column\u ID,当您查询表而不指定列顺序时,该列决定列的显示方式。它是创建表时指定的列的顺序

因此,除非指定列顺序,否则新表中的列将按照它们在原始表中的存在顺序排列

举例来说:

    CREATE TABLE qazz
    (
     a      NUMBER
    ,b      NUMBER
    ,c      NUMBER
    ,b2     DATE
    );

CREATE TABLE qazz_2 AS SELECT * FROM qazz;

CREATE TABLE qazz_3 AS SELECT a, b, b2, c FROM qazz;

SELECT table_name, column_name, column_id 
    FROM all_tab_columns 
    WHERE table_name LIKE 'QAZZ%' 
    ORDER BY table_name, column_id;

我不得不为我的项目添加另一列,所以我再次删除/清除,但这次我注意到我在SQL DEVELOPER中,CTA在一个选项卡中,drop语句在另一个选项卡中。它们都使用表前面的模式名,但这次当我从sqldeveloper中的同一个选项卡中删除&cta,然后从另一个选项卡查询时,所有列的顺序都是正确的。所以可能是sql开发人员或会话问题?

发布您的create/drop语句和表定义如何创建新表即使在不清除的情况下删除表,我也无法复制这种行为。我相信@BriteSponge,这太奇怪了。我以前从未见过这种情况。我觉得我快疯了。你确定你从正确的模式中删除了表吗?如果希望100%确定,您可以始终指定架构名称。当然,另一种选择是不必担心表,只需创建一个视图,以最适合您的顺序显示列。您说:因此,除非指定列顺序,否则新表中的列将按照它们在原始表中的存在顺序排列。“但是,如果我删除我创建并清除的原始表,然后以相同的名称再次选择创建表,它是否会按照我指定的顺序创建它,而不是在最后添加新列?创建表newtable 1 nologging parallel 8 compress as select ColA,ColB,ColC from table;然后我放下表格:放下表格NewTable1;创建表NewTable1 nologging parallel 8 compress作为从表中选择ColA、ColB、ColB2、ColC;OP没有向现有表中添加列。他把桌子扔了,然后又重新造了一张
?\u TAB\u COLUMNS
应该没有“内存”-当重新创建表(使用其旧名称)并且某些列的名称与以前相同时,
?\u TAB\u COLUMNS
甚至不应该“记住”在删除表之前存在同名表。我必须为我的项目添加另一列,所以我再次删除/清除了它,但这次我注意到我在SQLDEVELOPER中,CTA在一个选项卡中,drop语句在另一个选项卡中。它们都使用表前面的模式名,但这次当我从sqldeveloper中的同一个选项卡中删除&cta,然后从另一个选项卡查询时,所有列的顺序都是正确的。所以可能是sql开发人员或会话问题?很可能不是工具的问题,而是工具的使用方式问题。