精华内容
下载资源
问答
  • oracle修改字段数据类型
    万次阅读
    2019-03-08 09:53:22

    有一个表名为tb,字段段名为name,数据类型nchar(20)。

    1、假设字段数据为空,则不管改为什么字段类型,都可以直接执行,比如改为数值类型:
    alter table tb modify (name NUMBER (16,2));    

    2、假设字段有数据,若新类型和原类型兼容,则可以直接执行:
    alter table tb modify (name nvarchar2(20));

    3、假设字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题

    /*修改原字段名name为name_tmp*/
    alter table tb rename column name to name_tmp;

    /*增加一个和原字段名同名的字段name*/
    alter table tb add name varchar2(40);

    /*将原字段name_tmp数据更新到增加的字段name*/
    update tb set name=trim(name_tmp);

    /*更新完,删除原字段name_tmp*/
    alter table tb drop column name_tmp;

    更多相关内容
  • 最近学习了Oracle修改字段类型方法,留做记录。 有一个表名为tb,字段段名为name,数据类型nchar(20)。 1、假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter table tb modify (name nvarchar2(20...
  • Oracle表中已有数据修改字段类型

    千次阅读 2022-05-11 15:46:11
    Oracle的表中已存在了数据,这时再来修改表的字段类型就无法...备份原表数据,清除表数据修改字段类型,还原数据 // 1.创建备份表 create table test_bak as select * from test; // 2.清除原表数据 truncate table

    Oracle的表中已存在了数据,这时再来修改表的字段类型就无法修改。例如,
    number类型改成number(22),这时数据库会报ORA-01440: column to be modified must be empty to decrease precision or scale

    推荐使用方法1,方法2如果字段不能为空就无法使用

    方法1

    备份原表数据,清除表数据,修改字段类型,还原数据

    -- 1.创建备份表
    create table test_bak as select * from test;
    -- 2.清除原表数据
    truncate table test;
    -- 3.修改字段类型
    alter table test modify test_id number(22);
    -- 4.还原数据
    insert into test select * from test_bak;
    commit;
    

    方法2

    只备份需要修改的字段的数据,可以在原表上新增备份字段,也可以新建一张表备份字段数据

    -- 1.新增字段
    alter table test add test_id_bak number;
    -- 2.复制数据
    update test set test_id_bak = test_id;
    commit;
    -- 3.清除字段数据并修改字段类型
    update test set test_id = null;
    commit;
    -- 4. 修改字段类型
    alter table test modify test_id number(22);
    -- 5.还原数据
    update test set test_id=test_id_bak;
    commit;
    -- 6.删除临时字段
    alter table test drop column test_id_bak;
    
    展开全文
  • DML句:"alter table 表名 modify 字段名 新数据类型 " 只对空表起作用,当存在数据时,不允许修改。  下面介绍两种不删除数据,更改数据类型的操作方法。  首先,我们先熟悉alter对字段的各种操作,后面会...

      最近项目中有这样一个变动,需要修改数据库中某个字段类型。但是,表中已经存在大量数据了。DML句:"alter table 表名 modify 字段名  新数据类型 " 只对空表起作用,当存在数据时,不允许修改。

         下面介绍两种不删除数据,更改数据类型的操作方法。

          首先,我们先熟悉alter对字段的各种操作,后面会用得到。

    对字段操作

    操作方法

    更新字段名

    alter table TABLE_NAME rename column column_old to column_new;

    添加字段

    alter table TABLE_NAME add COLUMN_NAME varchar(10);

    删除字段

    alter table TABLE_NAME drop column COLUMN_NAME;

    添加字段并附值

    alter table TABLE_NAME ADD COLUMN_NAME NUMBER(1) DEFAULT 1;

    修改字段值

    update TABLE_NAME set filedname=value where filedname=value;

    修改字段数据类型

    alter table tablename modify filedname varchar2(20);

            例如,下面要将fraction的double类型修改为float类型

    方法一:

               (1) 添加一个新字段 newfield,数据类型设置为新数据类型

               (2) 将要修改字段的值复制到刚添加的列中 oldfield—newfield

               (3) 删除原来字段oldfield

               (4) 重命名newfield

    [sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
    1. alter table test add fraction_temp float  
    2. update test set fraction_temp =fraction  
    3. alter table test drop column fraction  
    4. span style="white-space:pre">   </span>alter table test rename column fraction_temp to fraction  

           方法二:

               (1) 添加一个临时字段 field_temp,数据类型设置为新数据类型

               (2) 将要修改字段的值复制到刚添加的临时列中 oldfield——field_temp,清空原来字段oldfield值

               (3) 修改oldfield的数据类型

               (4) 将值从临时字段中拷贝回来

       (5) 清空临时字段值,删除临时字段

               

    [sql]  view plain copy 在CODE上查看代码片 派生到我的代码片
    1.     alter table test add fraction_temp float  
    2.     update test set fraction_temp=fraction,fraction=null  
    3.     alter table test modify fraction float  
    4.     update test set fraction=fraction_temp,fraction_temp=null  
    5. <span style="white-space:pre">  </span>alter table test drop column fraction_temp  

           第二种方法通过中间字段来操作,虽然步骤多了一步,但是可以避免第一种方法导致的字段位置变动,不过位置变动也没有什么大的影响吧。

          其实,发现还有更简单的方法,数据库客户端支持粘贴复制功能,你可以打开两个客户端,保证一个客户端显示着表中的所有数据,同时从另一个客户端中删除数据,修改数据类型后,再从还保留着数据的客户端中将数据粘过来。

    展开全文
  • oracle更改有数据字段类型

    千次阅读 2022-04-25 09:23:49
    /** ORACLE更改字段类型 **/ -- 1.表的原字段重命名 ALTER TABLE BDGH_INST.BZ_GHSJYQ RENAME JZGDSX TO JZGDSX_TEMP; ALTER TABLE BDGH_INST.BZ_GHSJYQ RENAME JZGDXX TO JZGDXX_TEMP; -- 2.添加新字段字段名与...
    /** ORACLE更改字段类型 **/
    -- 1.表的原字段重命名
    ALTER TABLE BDGH_INST.BZ_GHSJYQ RENAME COLUMN JZGDSX TO JZGDSX_TEMP; -- 将 JZGDSX 重命名为 JZGDSX_TEMP
    ALTER TABLE BDGH_INST.BZ_GHSJYQ RENAME COLUMN JZGDXX TO JZGDXX_TEMP; -- 将 JZGDXX 重命名为 JZGDXX_TEMP
    
    -- 2.添加新字段,字段名与原来的保持一致,类型是想修改的字段类型
    ALTER TABLE BDGH_INST.BZ_GHSJYQ ADD JZGDSX NVARCHAR2(20);
    ALTER TABLE BDGH_INST.BZ_GHSJYQ ADD JZGDXX NVARCHAR2(20);
    
    -- 3.添加备注,方便理解
    COMMENT ON COLUMN BDGH_INST.BZ_GHSJYQ.JZGDXX IS '建筑高度下限';
    COMMENT ON COLUMN BDGH_INST.BZ_GHSJYQ.JZGDSX IS '建筑高度上限';
    
    -- 4.把原来的字段值都赋值到新字段中(使用TO_CHAR()函数进行转换)
    UPDATE BDGH_INST.BZ_GHSJYQ G SET G.JZGDSX = TO_CHAR(JZGDSX_TEMP), G.JZGDXX = TO_CHAR(JZGDXX_TEMP);
    
    -- 5.原来的表可以不用删除,可做数据备份
    
    展开全文
  • 模拟情景,表:batchintfloadlog,要修改字段:resultinfo,字段 从原来的 varchar2 修改为clob1、假设要修改字段数值为空,则可以直接修改;​可是发现如下错误:​SQL> alter​tablebatchintfloadlogmodify ...
  • 1.将该列设置为null,再修改类型(这样会丢失数据)2.最简单的方法:假设你的表名为 tab_targetcreate table test as select * from tab_target whre 1=2;alter table test modify (col_name number(5));insert into ...
  • Oracle数据库中,表中已存在数据字段修改字段的长度,如有疑问可沟通联系,当积分自动提升到很高的时候欢迎联系,会把积分调低。
  • 有一个表名为tb,字段段名为name,数据类型nchar(20)。 1、假设字段数据为空,则不管改为什么字段...3、假设字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要
  • 如果直接修改字段类型为NUMBER(22,8),会提示 在行: 4 上开始执行命令时出错 - alter table ar_gatheritem modify NOUTPUTVALUEMNY NUMBER(22,8) 错误报告 - ORA-01440: 要减小精度或标度, 则要修改的列必须为空 ...
  • Oracle 修改字段类型

    千次阅读 2021-03-09 17:04:05
    修改 Oracle 表中字段类型,在该字段存在值的情况下,会提示:ORA-01439:要更改数据类型,则要修改的列必须为空 这时就需要区分情况处理。 数据量比较小的时候,可以直接操作目标表。 重命名字段名,添加新字段,...
  • oracle修改user表字段name类型时遇到报错:“ORA-01439:要更改数据类型,则要修改的列必须为空”,是因为要修改字段的新类型和原来的类型不兼容。 如果要修改的字段数据为空时,则不会报这种类型的错误,可以进行...
  • oracle修改字段类型及长度

    千次阅读 2022-01-12 15:38:39
    oracle修改字段类型及长度 –改变类型及长度 Alter Table tableName Add (new_name number(10));–新增加一个字段用作储存要改变类型及长度的值 update tableName p set p.new_name=null;–设置增加字段为空 update ...
  • oracle将其他字段类型改为clob类型方法
  • oracle数据库如何修改字段数据类型以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!1、首先打开plsql,连接上oracle数据库,假设有一张数据库表叫做 ...
  • oracle变更数据表字段类型 ,简单易懂方便快捷!
  • 创建相关表,无数据。...1、字段数据为空,不管改为什么字段类型及字段大小,可以直接执行原name数据类型为varchar2(10),改为varchar2(100)及nvarchar2(10)均成功alter table aa modify name varchar2(100); ...
  • 有一个表名为tb,字段段名为request_id,数据类型int 更改为VARCHAR2(64)。 1、假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter table tb modify (request_id varchar2(64)); 2、假设字段没有...
  • oracle 修改 字段名称

    千次阅读 2021-05-07 12:49:51
    暂时应该没有对应的方法,所以我用自己想好的方法去修改/*修改字段名name为name_tmp,是将想改名称的字段改为没用/临时的字段*/Alter table 表名 rename column 老字段 to 新字段;/*增加一个和原字段名同名的字段...
  • 修改字段类型为clob类型。(增加clob临时字段->复制原字段值->删除原字段->修改临时字段名为原字段名)执行命令:alter table BG_CONTRACT_INFO modify BG_EXPLAIN CLOB;oracle版本问题,即使没数据也会...
  • Oracle修改字段名、字段数据类型

    万次阅读 2018-08-03 09:54:33
    语句: alter table tableName rename column oldCName...alter table tableName modify (cloumnName 数据类型); -- 修改数据类型 例如: tableName rename column oldCName to newCName; -- 修改字段名 alter t...
  • Oracle修改字段类型和长度,oracle修改字段Oracle修改字段名alter table 表名 rename column 旧字段名 to 新字段名Oracle修改字段类型和长度alter table 表名 modify 字段名 数据类型如果是修改数据类型比如由...
  • Oracle修改字段类型,把varchar2类型变成date类型 表已经有数据 原来表是这样的 create table export ( name varchar2(10), datetimes varchar2(50) ) 原来datetimes 时间的格式为 20090608121418 现在为方便按时时间...
  • 关于Oracle如何修改字段类型

    千次阅读 2020-08-05 19:10:40
    有一个表名为TTRD_STRATEGY,字段段名为...2、假设字段有数据,则改为varchar2(100)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题: /*修改字段名author_use
  • 有一个表名为tb,字段段名为name,数据类型nchar(20)。 1、假设字段数据为空,则不管改为...3、假设字段有数据,则改为varchar2(40)执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面
  • 原理就是:相当于新增一个临时列来切换数据,将原列数据置空,然后修改数据类型后,再将数据复制回来,再删掉临时列。
  • Oracle中如何修改字段名和数据类型

    千次阅读 2020-05-04 22:11:45
    Oracle中如何修改字段名和数据类型 假如student表中有一个password的字段名,数据类型为varchar2(10)。 要修改他的字段名和数据类型有两种方式: 1.先添加一个字段,再把password字段删除。例如: alter table ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,062
精华内容 48,024
热门标签
关键字:

oracle修改字段数据类型