我的表格MPDAT_ALT
包含R_ID
,CUSTOMER
,ORDER_DATE
,ORDER_ID
列。 CUSTOMER
有column_id' 1',R_ID
' 2',ORDER_DATE
' 3',ORDER_ID
& #39; 4&#39 ;.
但数据显示为以下列顺序:R_ID
,CUSTOMER
,ORDER_DATE
,ORDER_ID
。
这是为什么?我通过执行SQL语句创建了表MPDAT_ALT
:
CREATE TABLE MPDAT_ALT as (SELECT CUSTOMER, R_ID, ORDER_DATE, ORDER_ID from MPDAT)
表格MPDAT
首先包含列R_ID
,然后是CUSTOMER
,ORDER_DATE
和ORDER_ID
。
为什么没有MPDAT_ALT
向我显示列ID暗示的列顺序数据?
答案 0 :(得分:0)
总结评论:您在对象查看器中打开了一个现有的MPDAT_ALT
表(通过从Connections窗口的Tables列表中选择它)。当该表选项卡打开时,您将从工作表中删除并重新创建该表。然后,您返回到打开的MPDAT_ALT
选项卡,并刷新了“列”和“数据”选项卡。 “列”选项卡现在显示重新创建的表的新列顺序,但“数据”选项卡按照表的上一个版本的顺序显示列。
我可以重新创建它,似乎是由SQL Developer缓存它用来检索数据的查询。您可以使用完全不同的列名重新创建表并刷新“数据”选项卡,它仍将显示原始列标题。
由于在该选项卡中刷新只刷新数据而不刷新元数据,因此您需要:
MPDAT_ALT
表格窗口,然后从“表格”列表中重新打开它。然后,“列和数据”选项卡将按照您期望的顺序显示列,如数据字典中所定义。
所有这些都在SQL Developer 4.1.3中工作。早期版本可能仍然显示旧订单,在这种情况下,您可能必须退出SQL Developer并重新启动它以查看更改。
如果在删除/重新创建表之前更改了“数据”选项卡(或persisted a find/highlight)中的列顺序或宽度,则SQL Developer会在“数据”选项卡中保留旧的列顺序。正如您所发现的,您可以右键单击任何列标题,然后选择“删除持久设置”,这将使用新的列顺序重新生成选项卡 - 但显然您会丢失自定义的宽度或高亮显示,或者您设置的任何内容起来。