代码改变世界

oracle调整表中列顺序

  abce  阅读(6344)  评论(0编辑  收藏  举报

有一个哥们提出一个问题:

有个表,创建时候的列顺序是a,b,c

如何使用select * 的时候,让列的显示顺序是a,c,b 而且任性地必须使用select *来查询,且不能重建表。

 

假设有个表test

1
2
3
4
5
6
7
8
9
10
11
12
13
SQL> select * from test;
 
A                    B                    C
-------------------- -------------------- --------------------
you                  pig                  are
 
SQL> select a,c,b from test;
 
A                    C                    B
-------------------- -------------------- --------------------
you                  are                  pig
 
SQL>

 

按照其要求,应该是以下显示方式:

1
2
3
4
5
6
7
SQL> select * from test;
 
A                    C                    B
-------------------- -------------------- --------------------
you                  are                  pig
 
SQL>

 

可以通过修改sys.col$表来改变表中列的顺序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
SQL> SELECT owner,object_name,object_id FROM ALL_OBJECTS WHERE OBJECT_NAME='TEST';
 
OWNER                          OBJECT_NAME                     OBJECT_ID
------------------------------ ------------------------------ ----------
SYS                            TEST                                88842
 
SQL> select obj#,col#,name from sys.col$ where obj# =88842 order by col#;
 
      OBJ#       COL# NAME
---------- ---------- ------------------------------
     88842          1 A
     88842          2 B
     88842          3 C
 
SQL> update sys.col$ set col#=2 where obj# =88842 and name='C';
 
1 row updated.
 
SQL> update sys.col$ set col#=3 where obj# =88842 and name='B';
 
1 row updated.
 
SQL> commit;
 
Commit complete.
 
SQL> select * from test;
 
A                    C                    B
-------------------- -------------------- --------------------
you                  are                  pig
 
SQL>

 

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2015-06-22 Unplugging一个PDB
2015-06-22 使用已有PDB克隆PDB
2015-06-22 Oracle 12C -- 使用seed PDB创建新的pdb
点击右上角即可分享
微信分享提示