精华内容
下载资源
问答
  • Oracle修改字段顺序

    2013-12-12 11:21:22
    Oracle Pl/SQL 修改字段显示的顺序
  • 如果要修改字段顺序,一般情况可以使用以下步骤: --(1)备份目标表数据 create table 临时表 as select * from 目标表; --(2)drop 目标表 drop table 目标表; --(3)再重新按照要求的字段顺序建表; ...

    分类: 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;

    转载于:https://www.cnblogs.com/aipan/p/7147316.html

    展开全文
  • oracle 调整字段顺序

    千次阅读 2017-07-17 22:52:05
    不像mysql可以直接一条sql搞定(alter...场景描述:假设我们有一张表名为test,该表有三个字段,依次为col1、col2、col3,现在我们想新增一个字段col4,并把col4放到最前面,即我们希望调整后的字段顺序为col4、col1、c

    不像mysql可以直接一条sql搞定(alter table 表名
    change 字段名 新字段名 字段类型 默认值 after 字段名(跳到哪个字段之后)),oracle 必须另辟蹊径,曲线救国。
    场景描述:假设我们有一张表名为test,该表有三个字段,依次为col1、col2、col3,现在我们想新增一个字段col4,并把col4放到最前面,即我们希望调整后的字段顺序为col4、col1、col2、col3。总结下来方法有三种:

    方法一

    笔者认为这是最安全保守的一种方法,就是用create table as select 重建新表,此方法适用于表中数据量不大的情况,若表中已经存在了大量数据,则本操作对空间的要求可能就很大了。详细操作如下:

    ALTER TABLE test ADD col4 varchar2(5);
    ALTER TABLE test RENAME TO test_bk;
    CREATE TABLE test AS SELECT col4,col1,col2,col3 FROM test_bk;

    方法二

    对于表中存在大量数据,并且空间有限的情况,就需要通过直接操作数据字典来实现字段顺序的调整;该方法需要系统管理员权限sys或者 as sysdba。详细操作如下:

    select object_id from all_objects where object_name='TEST';或者
    select object_id from obj where object_name='TEST';取得表TEST的object_id;假设为51234
    select obj#,col#,name from sys.col$ where obj#=51234 order by col#;查看当前字段顺序
    update sys.col$ set col#=1 where obj#=51234 and name='COL4';
    update sys.col$ set col#=col#+1 where obj#=51234 and name!='COL4';
    COMMIT;
    SHUTDOWN IMMEDIATE; 
    STARTUP; 

    切记本方法需要重启数据库生效!

    方法三

    该方法的本质实际上也是操作数据字典,但是不需要dba权限,并且此方法仅适用于12c以上版本。

    select * from v$version where rownum=1; //12C以上版本可用invisible
    ALTER TABLE  test  MODIFY( COL1 INVISIBLE, COL2 INVISIBLE, COL3 INVISIBLE);
    SELECT column_name, column_id FROM user_tab_cols  WHERE table_name = 'TEST' order by 2;
    ALTER TABLE test  ADD ( COL4 VARCHAR2(5));
    SELECT column_name, column_id FROM user_tab_cols  WHERE table_name = 'TEST' order by 2;
    ALTER TABLE  test  MODIFY( COL1 VISIBLE, COL2 VISIBLE, COL3 VISIBLE);
    展开全文
  • 修改ORACLE字段顺序

    千次阅读 2015-05-13 18:35:44
    首先你要有一个pl/sql,其实...2.查询出你要更改的表的ID,以我本地的数据为例,我要改'FINACE'用户下'INCOME'这张表。注:ORACLE中的表要用大写。  select object_id  from all_objects  where owner =

    首先你要有一个pl/sql,其实没有也行,但是这数据库还是有一个可视化界面为好啊。

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

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

      select object_id

      from all_objects

      where owner = 'SYSTEM' and

      object_name = ‘JIEHUO1' ;

      得到jiehuo1这张表的object_id,注意表名一定要大写开始我表名没大写,各种没有啊。

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

      select obj#,col#,name

      from sys.col$

      where obj#=51221;

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

    展开全文
  • Oracle修改字段顺序

    2019-11-26 14:52:19
    1,查询表的ID select object_id from all_objects where object_name = 'CFORM_COULUMN'; ...3,查看表的字段详细情况 SELECT * FROM COL$ WHERE OBJ#='112043' ORDER BY ...4,更新字段顺序 UPDATE COL$ SET COL#...

    一:简单粗暴

    1,Oracle:

    create table CFORM_COULUMN_2 as (select  字段A,字段B  from CFORM_COULUMN);
    
    

    2,Sqlserver

    select 字段A,字段B.... into  CFORM_COULUMN_2 from CFORM_COULUMN
    

    二:通过SYS数据库更新字段顺序

    1,查询表的ID

    select object_id from all_objects where  object_name = 'CFORM_COULUMN';
    
    

    2,使用SYS账号切换到SYS数据库
    3,查看表的字段详细情况

    SELECT * FROM COL$ WHERE OBJ#='112043' ORDER BY COL#;
    

    4,更新字段的顺序

    UPDATE COL$ SET COL#=25 WHERE OBJ#='112043' AND NAME='DELETED';
    
    UPDATE COL$ SET COL#=26 WHERE OBJ#='112043' AND NAME='COULUMN_DATA_SOURCE_TYPE';
    

    5,重启数据库

    展开全文
  • 修改Oracle字段顺序

    千次阅读 2018-05-23 17:58:22
    Oracle数据库在创建表之后,是不支持用工具或代码直接修改字段顺序的,但还是有其他方式修改的。比较流行的有以下两种方式:一、1.先备份要修改的表的数据,删除原始表。2.重新新建数据表,按自己想要的顺序建表,...
  • 原有表结构顺序为desc testid numberb numbera number 需要调整为desc testid numbera numberb number 2.备份需要调整表的顺序数据create table test_bk as select * from test; 3.删除表drop...
  • 转载出处:http://www.examw.com/oracle/zhonghe/203733/
  • 如何在PL/SQL中修改ORACLE字段顺序

    万次阅读 2014-02-14 16:22:33
    今天下午工作中遇到的问题,我需要将A表中的数据放到它的备份表A_1中去,但A_1表中缺少两个字段,于是我就给它加上两个字段,但新加的字段会默认排在在最后面,与表A中的字段顺序不一致,那么用insert into A_1 ...
  • 主要给大家介绍了关于Oracle数据库表中字段顺序修改方法,在介绍修改的方法之前先给大家介绍了Oracle数据库表新建字段的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习...
  • 问题就是当设计好表结构之后,后期如果需要往表中增加字段,默认会把该字段放到表的最后,并且字段特别多而我们又想把有关联性的字段放在一起,这时就要修改字段顺序。在修改顺序之前,我们先来看看Oracle数据库表中...
  • Oracle表新增字段后修改字段顺序

    千次阅读 2018-02-08 21:25:58
     工作中遇到:在为一个表新增字段后,新增字段在最后,想调整新增字段的位置。 1、原始方法:--新建临时表以存储正确的顺序 create table A_2 as select (column1,colum2,……A表中的顺序) from A_1 ;--删除表A...
  • 需要改变新增列的顺序,通过修改col$.col#改变列展示顺序。表中新增加一列,然后让这个列在中间(大家都知道默认情况下,增加一列,这列会在其他列之后),通过修改col$基表可以实现改变列的显示顺序(增加一个新列是...
  • Oracle 之 表新增字段后修改字段顺序

    千次阅读 2019-05-20 11:33:00
    工作中遇到:在为一个表新增字段后,新增字段在最后,想调整新增字段的位置。 1、原始方法: --新建临时表以存储正确的顺序 create table A_2 as select (column1,colum2,……A表中的顺序) from A_1 ; -...
  • oracle数据库调整字段顺序 https://blog.csdn.net/xiaobaixie/article/details/77892034 转载于:https://www.cnblogs.com/hwubin5/p/10563625.html
  • 修改Oracle数据库表中的字段顺序

    万次阅读 2017-04-21 18:00:52
    并且字段特别多而我们又想把有关联性的字段放在一起,这时就要修改字段顺序。 第一种方法: 删了重建,这种方法虽然简单粗暴,但不科学 第二种方法: 1、首先需要sys或system权限操作 2、查询需要更改表的...
  • 如果使用的是Oracle数据库,不管是用Natvicat还是使用PL SQL客户端,拖动字段顺序并不能调整字段的顺序,正确的方法是使用SQL来调整。具体方法是: 1、使用oracle自带的sys、system等账号登录PL SQL等客户端 2、执行...
  • 今天这个问题6了, 本地连vpn,去远程数据库获取数据然后放到本地数据库,断点跟踪,连接远程...问题出在插数数据时报错:开始是报输入值过多,这很明了,就是数据库表列个数比schema 字段个数少了,发现少了reportDat

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,239
精华内容 22,495
关键字:

oracle更改字段顺序