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;

时间: 2024-12-14 20:38:28

Oracle 修改字段顺序的两种方法的相关文章

oracle rename数据文件的两种方法

oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一种 alter tablespace users rename datafile '==' to '***'; 这种方式需要数据库处于open状态,表空间在offline的状态下才能更改. [sql] view plain copy SQL> alter tablespace user

pdf文件怎么修改 修改PDF文件的两种方法

都说PDF格式的文件不能修改,我就呵呵了!不管你们信不信,反正我是不信.因为我会修改PDF文件,并且方法还不止一种.想知道我是怎么修改PDF文件的吗?下面我就告诉大家修改PDF文件的两种方法. 方法一 1.方法一就是将PDF文件转换成一种可容易编辑的文档,如:word.excel.ppt等格式,然后再进行编辑,编辑好后再将其转换成PDF格式,是不是很简单!具体是该如何转换的,下面有详细教程. 2.下载一个PDF转换器,并将它安装在电脑上.工具最好是支持双向转换的那种,如:http://www.x

修改swap大小的两种方法

这几天在虚拟机上安装Oracle VM Manager的时候提示swap太小,需要修改swap来重新安装,现在分享给大家. 修改交换空间大小有两种选择: 添加一个交换分区或者添加一个交换文件.两种方法都可以使用" 1. 添加一个交换分区 步骤如下:    a  使用fdisk来创建交换分区(假设 /dev/sdb2 是创建的交换分区)        b 使用 mkswap 命令来设置交换分区:           # mkswap /dev/sdb2    c 启用交换分区:          

oracle 创建字段自增长——两种实现方式汇总

mysql等其他数据库中有随着记录的插入而表ID自动增长的功能,而oracle却没有这样的功能,我们有以下两种方式可以解决字段自增长的功能. 因为两种方式都需要通过创建序列来实现,这里先给出序列的创建方式. CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; 解析: 1)INCREMENT BY用

linux系统修改root密码的两种方法

当我们linux服务器的root密码忘记以后,需要进入单用户模式下修改密码.此时的做法是到grub页面,修改grub程序.我们知道grub有两种模式,一种是文本模式,一种是命令模式.我们可以到文本模式下修改,例如方法一.但是有时候,我们会遇到一个问题,就是在文本模式下修改grub之后,保存并启动需要按“ctrl + c”,有些控制台终端设备不支持“ctrl+c”热键.这样就面临一个问题,grub的文本模式修改后,无法保存并运行,此时我问使用方法二. 方法一:grub文本模式修改grub程序 在l

oracle增加表空间大小两种方法

表空间不足添加表空间数据库文件 alter  tablespace  USERS  add datafile  '/oracle/app/oradata/shpog/user02.dbf' size 16G autoextend on; alter  tablespace SYSTEM   add datafile  '/oracle/app/oradata/shpog/undotbs01.dbf' size 5G; 表空间不足在原文件增加文件尺寸大小 alter  database  data

MySQL学习笔记(2) - 修改MySQL提示符的两种方法

学习于慕课网 http://www.imooc.com/video/1806 1.方法一: cmd中处于未登录状态时,输入 mysql -uroot -p自己的密码 --prompt 新的提示符 示例:mysql -uroot -p111111 --prompt \h 111111为自己的密码,\h指的是localhost 2.方法二: cmd中处于登录状态时,输入 prompt 新的提示符 示例: 3.提示符可以用的参数: 1)\D :完整的日期 2)\d :当前数据库 3)\h :当前主机名

在装完Linux系统之后自己去修改Swap分区的大小(两种方法)

在装完Linux系统之后自己去修改Swap分区的大小(两种方法) 在安装完Linux系统后,swap分区太小怎么办,怎么可以扩大Swap分区呢?有两个办法,一个是从新建立swap分区,一个是增加swap分区.下面介绍这两种方法: 第一您必须有root权限,过程中一定要很小心,一不小心就破坏了整个硬盘的数据,执行下面的过程之前您需要三思而行,错误操作后的后果由执行者自己承担. 新建swap分区 1.以root身份进入控制台,输入 # swapoff -a          #停止交换分区 2. 用

忘记linux中root密码怎么办?两种方法两步教你轻松搞定修改新的密码(仅限CentOS6.X)

忘记了Linux的系统管理员密码时,可以在本地通过进入单用户模式来重置root密码.两种方法(只需两步)具体步骤如下: 方法一: 在进入grub启动菜单的时候 按"a" 键操作编辑 kernel 参数后面加"single"告诉linux内核以单用户模式运行,回车启动即可.进去后,在命令行输入passwd回车,输入新的密码,重复输入,搞定.重启后输入新的密码即可登录.(注:grub界面时间很短,大概5秒,把握机会,如果不想等的话,在linux启动的时候随便按下一个键例