如何在PL/SQL中修改ORACLE的字段顺序

数据库 专栏收录该内容
45 篇文章 1 订阅

        今天下午工作中遇到的问题,我需要将A表中的数据放到它的备份表A_1中去,但A_1表中缺少两个字段,于是我就给它加上两个字段,但新加的字段会默认排在在最后面,与表A中的字段顺序不一致,那么用insert into A_1 select * from A; 时就会出错。

        当时用了一个笨方法,如下:

        --新建临时表以存储正确的顺序

        create table A_2  as select (column1,colum2,……A表中的顺序) from A_1 ;

        --删除表A_1

        drop table A_1;

        --新建A_1并从A_2表中赋予其正确的顺序和值

        create table A_1 as select * from A_2;

        --删除临时表A_2

        drop table A_2;

        这种方法对字段较少的表来说还不会显得太麻烦,但是对于字段较多的表来说就吃力了,于是就去google了一下,在CSDN(发布者:a9529lty)上发现了这么一个简单的方法:

        1.首先,以sys用户的身份登录PL/SQL

        2.查询出你要更改的表的ID,以我本地的数据为例,我要改'FINACE'用户下'INCOME'这张表。注:ORACLE中的表要用大写。

        select     object_id 

        from        all_objects

        where     owner = 'FINACE' and

                        object_name = 'INCOME' ;

        得到INCOME这张表的i,如图所示:

        

        3.根据id去查询该表中的字段以及字段序号

        select     obj#,col#,name

        from        sys.col$         

        where     obj#=73626; 

        结果如下图所示:

        

        4.第二列便是字段的序号,就可以用update语句来任意调整字段的顺序了。

  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值