zoukankan      html  css  js  c++  java
  • Oracle 修改字段顺序的两种方法

    分类: Oracle

    如果要修改字段顺序,一般情况可以使用以下步骤:
    --(1)备份目标表数据
    create table 临时表 as select * from 目标表;
    --(2)drop 目标表
    drop table 目标表;
    --(3)再重新按照要求的字段顺序建表;
    create table 临时表 (col1,................coln);
    --(4)之后用select将数据从临时表导回。
     
    此外,还可以通过修改sys的数据字典来实现。
    以下是自己的亲身测试记录
    --第1步 创建测试表
    create table TEST (A VARCHAR2(10),B VARCHAR2(10),C VARCHAR2(10),D VARCHAR2(10));
     
    --第2步 查询出表的id,注意:owner和object_name的值要大写
    --DBA用户使用
    select object_id from all_objects where owner='CHINAJFK' and object_name='TEST';--本例结果为52206
    --表归属用户可以使用
    select object_id from obj where object_name='TEST';--本例结果为52206
     
    --第3步 通过id查出该表所有字段的顺序
    select obj#,col#,name from sys.col$ where obj#=52206 order by col#;
     
    --第4步 更新字段顺序,需要sys用户或是System用户 as sysdba登录,或是其他拥有sysdba权限的用户,但是这里的操作一定要小心。
    --(1)更新目标字段的col#
    update sys.col$ set col#=4 where obj#=52206 and name='A';
    --(2)更新受影响字段的col#,自己根据情况自己组织语句
    update sys.col$ set col#=col#-1 where obj#=52206 and name!='A';
    --(3)提交
    commit;
     
    --第5步 重启Oralce服务
     
    --第6部 检查是否生效
    select obj#,col#,name from sys.col$ where obj#=52206 order by col#;
    select * from chinajfk.test;
  • 相关阅读:
    python__基础 : 类属性,类方法,静态方法
    python__基础 : 类的继承,调用父类的属性和方法
    python__基础 : 类的__init__,__str__,__del__方法
    Python__关于列表的引用 以append操作为例
    HTML5 Canvas 绘制图片不显示的问题
    MySQL 查询排除指定字段、自定义变量、动态执行SQL
    .Net系列 Transaction 事务
    Redis 基本操作
    C# 数值计算、转换
    详解.NET IL代码
  • 原文地址:https://www.cnblogs.com/aipan/p/7147316.html
Copyright © 2011-2022 走看看