精华内容
下载资源
问答
  • oracle更改字段类型
    2022-06-25 19:22:35

    oracle 修改字段类型流程

    注意::RECEIVECONTENT_1 为新增的字段
    RECEIVECONTENT 为旧字段

    1. 第一步:添加一个clob类型的字段
    alter table sendlog add (RECEIVECONTENT_1 clob);
    2. 第二部:将原来字段的值拷贝到新建的clob字段
    update sendlog set RECEIVECONTENT_1 = RECEIVECONTENT ;
    3.第三步:删除原来的字段
    alter table sendlog drop column RECEIVECONTENT;
    4.第四步:将新建的clob字段的名字修改为原来的字段的名字
    alter table sendlog rename column RECEIVECONTENT_1 to RECEIVECONTENT;

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

    2021-05-04 05:49:24
    Oracle修改字段类型方法总结2014-04-15 15:24 86913人阅读 评论(6) 收藏 举报分类: Oracle(14)版权声明:本文为博主原创文章,未经博主允许不得转载。有一个表名为tb,字段段名为name,数据类型nchar(20)。1、假设...

    Oracle修改字段类型方法总结

    2014-04-15 15:24 86913人阅读 评论(6) 收藏 举报

    分类: Oracle(14)

    版权声明:本文为博主原创文章,未经博主允许不得转载。

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

    1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:

    alter table tb modify (name nvarchar2(20));

    2、假设字段有数据,则改为nvarchar2(20)可以直接执行:

    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;

    总结:

    1、当字段没有数据或者要修改的新类型和原类型兼容时,可以直接modify修改。

    2、当字段有数据并用要修改的新类型和原类型不兼容时,要间接新建字段来转移。

    展开全文
  • Oracle 修改字段类型

    千次阅读 2021-03-09 17:04:05
    修改 Oracle 表中字段类型,在该字段存在值的情况下,会提示:ORA-01439:要更改数据类型,则要修改的列必须为空 这时就需要区分情况处理。 数据量比较小的时候,可以直接操作目标表。 重命名字段名,添加新字段,...

    修改 Oracle 表中字段类型,在该字段存在值的情况下,会提示:ORA-01439:要更改数据类型,则要修改的列必须为空

    这时就需要区分情况处理。

    1. 数据量比较小的时候,可以直接操作目标表。
      重命名字段名,添加新字段,复制原始字段数据,删除重命名字段。
    /* 表字段重命名 */
    ALTER TABLE table_name RENAME COLUMN column_name TO column_name_tmp;
    
    /* 新增原始字段同名字段 */
    ALTER TABLE table_name ADD column_name NUMBER(10,2);
    
    /* 将重命名字段数据更新到新增字段 */
    UPDATE table_name SET column_name = trim(column_name_tmp);
    
    /* 删除重命名字段 */
    ALTER TABLE table_name DROP COLUMN column_name_tmp;
    
    1. 如果数据量较大,比如这次遇到的情况5500万条数据,采用方法1更新字段数据要超过1小时。
      快捷操作就需要备份源表数据,修改字段名,从备份表插入数据。
    /* 备份数据,备份 table_name 表数据至 table_name_bak 表 */
    CREATE TABLE table_name_bak AS SELECT * FROM table_name;
    
    /* 清空目标表数据 */
    TRUNCATE TABLE table_name;
    
    /* 修改目标表字段类型 */
    ALTER TABLE table_name MODIFY(column_name NUMBER(10,2));
    
    --禁用索引
    ALTER INDEX INDEX_NAME UNUSABLE;
    
    /* 将备份表数据插入目标表 */
    INSERT INTO table_name
      (column_name1,
       column_name2,
       column_name3,
       ...)
      SELECT column_name1,
       column_name2,
       column_name3,
       ...
        FROM table_name_bak;
    
    /* 删除备份表 */
    DROP TABLE table_name_bak;
    
    --恢复索引
    ALTER INDEX INDEX_NAME REBUILD;
    
    --查看索引状态
    SELECT status FROM user_indexes WHERE index_name='INDEX_NAME';
    
    展开全文
  • Oracle更改字段类型

    千次阅读 2018-08-09 16:14:51
    当一个列名(字段)下有数据的时候无法直接更改列名的类型,这时可以用以下方法: 1、修改字段名name为name_tmp alter table tb rename column name to name_tmp; 2、增加一个和原字段名同名的字段name ...

    当一个列名(字段)下有数据的时候无法直接更改列名的类型,这时可以用以下方法:

    1、修改原字段名name为name_tmp

    alter table tb rename column name to name_tmp;

    2、增加一个和原字段名同名的字段name

    alter table tb add name varchar2(32);

    3、将原字段name_tmp数据更新到增加的字段name

    update tb set name=trim(name_tmp);

    4、更新完,删除原字段name_tmp

    alter table tb drop column name_tmp;

    5、当这个字段的数据量太大的时候,不推荐这种方法,这时可以考虑kettle,采用抽取数据到一张新表的方式来解决。

    展开全文
  • 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 ...
  • 1、假设字段数据为空,则不管改为什么字段类型,可以直接执行! 2、假设字段有数据,执行时会弹出:“ORA-01439:要更改数据类型,则要修改的列必须为空”,这时要用下面方法来解决这个问题: //修改原字段名 第一步 ...
  • 1、假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter table tb modify (name nvarchar2(20)); 2、假设字段有数据,则改为nvarchar2(20)可以直接执行: alter table tb modify (name nvarchar2(20))...
  • 如果直接修改字段类型为NUMBER(22,8),会提示 在行: 4 上开始执行命令时出错 - alter table ar_gatheritem modify NOUTPUTVALUEMNY NUMBER(22,8) 错误报告 - ORA-01440: 要减小精度或标度, 则要修改的列必须为空 ...
  • 1、假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter table tb modify (name nvarchar2(20)); 2、假设字段有数据,则改为nvarchar2(20)可以直接执行: alter table tb modify (name nvarchar2(20));...
  • Oracle 修改字段类型(varchar2-->clob)

    千次阅读 2021-11-03 13:48:44
    本来该字段使用varchar2(4000),但还是长度不够,需要修改字段类型为clob 1.开始尝试直接把varchar2修改为clob alter table sys_user modify note clob; 提示:数据类型变更无效!!! 原因:修改的当前字段有值 2...
  • 修改字段类型为clob类型。(增加clob临时字段->复制原字段值->删除原字段->修改临时字段名为原字段名)执行命令:alter table BG_CONTRACT_INFO modify BG_EXPLAIN CLOB;oracle版本问题,即使没数据也会...
  • 模拟情景,表:batchintfloadlog,要修改字段:resultinfo,字段 从原来的 varchar2 修改为 clob 1、假设要修改字段数值为空,则可以直接修改;​ 可是发现如下错误:​ SQL> alter ​table batchintfloadlog ...
  • 修改字段类型: alter table 表名 modify(字段 nvarchar2(10)); 修改字段名: alter table 表名 rename column 原字段名 to 新字段名;
  • Oracle修改字段类型和长度,oracle修改字段Oracle修改字段名alter table 表名 rename column 旧字段名 to 新字段名Oracle修改字段类型和长度alter table 表名 modify 字段名 数据类型如果是修改数据类型比如由...
  • Oracle表中已有数据修改字段类型

    千次阅读 2022-05-11 15:46:11
    Oracle的表中已存在了数据,这时再来修改表的字段类型就无法...备份原表数据,清除表数据,修改字段类型,还原数据 // 1.创建备份表 create table test_bak as select * from test; // 2.清除原表数据 truncate table
  • 以下的文章主要描述的是Oracle修改字段类型实际操作方案,我们大家都知道Oracle修改字段类型的实际应用中是较为常见的,了解其实际的操作步骤还是有一定好处的,下面就是文章的具体内容的介绍。因为业务需要,修要...
  • 1、假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter table tb modify (request_id varchar2(64)); 2、假设字段没有数据,则改为varchar2(20)可以直接执行: alter table tb modify (request_id ...
  • oracle 修改字段类型

    2020-06-24 11:47:21
    alter table TLK_ADDRESSBOOK add tmp_col NUMBER(20);-- 添加临时列 update TLK_ADDRESSBOOK set tmp_col = item_sort ; --将目标字段中数据加入到临时列中 update TLK_ADDRESSBOOK set item_... --更改目标字段
  • 转自:Oracle修改字段类型方法总结需求有一个表名为tb,字段段名为name,数据类型nchar(20),现需要将其修改为其他类型!方法1、假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify ...
  • oracle修改字段类型,从number(2)改为number(2,1)今天下午,自己做东西时,发现个小问题,当时建立数据表的时候,把course的course_credit字段建为了number(2)型,这导致了输入类似于:4.5时,精度丢失,打算改表字...
  • oracle修改user表字段name类型时遇到报错:“ORA-01439:要更改数据类型,则要修改的列必须为空”,是因为要修改字段的新类型和原来的类型不兼容。 如果要修改的字段数据为空时,则不会报这种类型的错误,可以进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,567
精华内容 73,026
关键字:

oracle更改字段类型