`
tree_161219
  • 浏览: 85785 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

整理:Oracle 修改字段类型

阅读更多
1,如果只是单纯的把字段改大,比如numeric (16,2)--->numeric  (16,4) ,可直接
    alter table 表名 modify (   字段名     numeric               (16,4)

2,由于需求变动,现要将一个类型NUMBER(8,2)的字段类型改为 char。
大体思路如下:
      将要更改类型的字段名改名以备份,然后添加一个与要更改类型的字段名同名的字段(原字段已经改名),然后更新数据,最后删除改名备份的字段。

以下操作在 Oracle 10.2.0.1.0 中通过。

/*修改原字段名*/
ALTER TABLE 表名 RENAME COLUMN 字段名 TO 字段名1;
/*添加一个和原字段同名的字段*/
ALTER TABLE 表名 ADD 字段名  VARCHAR2(30);
/*
将原来的数据更新到新字段中
这是要注意,一定要显示进行数据类型转换(不同于MSSQL)
*/
UPDATE 表名 SET 字段名 = CAST(字段名1 AS VARCHAR2(30));
/*删除原来的备份字段*/
ALTER TABLE 表名 DROP COLUMN 字段名1;


其他方案:

今天公司因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型

要是没有数据的话直接用以下语句即可

alter   table  tb_test  modify permile  number(5,2);

但是有数据的话 就不能用上面方法了,

alter table tb_test add permile_temp number(5,2)

update tb_test set  permile_temp=permile;

alter table drop column permile;

alter  table test rename column  permile_temp to permile;

这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响

以下方法是比较好的方法

不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次

如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做

要是不停机的话 ,也可以采用在线重定义方式来做

以下是脚本:

alter table tb_test  add permile_temp number;
-- Add/modify columns
alter table  tb_test  modify PERMILE null;
update  tb_test  set permile_temp=permile,permile=null;
commit;
alter table  tb_test  modify permile number(5,2);
update  tb_test  set permile=permile_temp,permile_temp=null;
commit;
alter table  tb_test  drop column permile_temp;
alter table  tb_test  modify PERMILE not null;
select * from  tb_test ;
分享到:
评论

相关推荐

    日常收集整理的oracle常用命令大全(收藏)

    一、Oracle的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit...

    Oracle数据库学习指南

    8. ORACLE的数据类型 9. Oracle数据库碎片整理 10.ORACLE性能调整1 11.ORACLE性能调整2 12.Oracle专家调优秘密 13.PL_SQL单行函数和组函数详解 14.PL-SQL 15.PLSQL异常处理初步 16.SQL语句性能调整...

    Oracle数据库表结构导出成Word文档工具(带源码下载)

    Oracle数据库表结构导出成Word...修改了一下数据库的连接方式:由于我安装的是win764位+office64+oracle client 32位,用MSDAORA.1无法连接,所以将MSDAORA.1换为OraOleDb.Oracle.1,换后正常连接数据库。 原作者: ...

    Oracle9i的init.ora参数中文说明

    说明: 指定一个字符串值, 设置 TIME 数据类型的默认值, 该数据类型包含 HOUR, MINUTE 和 SECOND 这几个日期时间字段。 语法: TIME '09:26:50' (将值存储为 7 个字节)。 默认值: 从 NLS_TERRITORY 中获得 nls_time...

    Javashop开发规范V2.2

    对应的数据库字段: 2.4 注解的使用 2.4.1 @NotDbField 在某个实体Bean中,我们可能会有一些属性不对应数据库字段,这时我们需要在相应的 Geter方法中加上@NotDbField注解,以便使数据库机制知道这个字段不转为...

    Toad 使用快速入门

    可以修改表的各种逻辑和物理属性,修改列的属性,增加列,删除列(在Oracle8i里面),修改表的物理存储属性,Truncate,Drop等。 iii. 可以生成建表的完整的DDl语句,包括存储信息,权限信息,约束,索引和触发器等,...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    5.2 字段类型的选取 133 5.2.1 数值类型 134 5.2.2 字符类型 139 5.2.3 时间类型 141 5.2.4 小技巧:快速修改表结构 148 5.2.5 pt-online-schema-change在线更改表结构 152 5.2.6 mysql5.6在线ddl更改表测试 ...

    自由宿主Asp.net网站通用后台管理系统 v3.2.rar

    2. 编辑页面**期、编辑器和验证脚本整理,调整到脚本文件edit.js中,如果有其他需求,可以修改该脚本文件; 3. 增加oracle和mysql数据库支持,支持,系统可以支持ms sql、access、oracle和mysql等主流数据库; 4. ...

    如何把sqlserver数据迁移到mysql数据库及需要注意事项

    1、唯一索引的不同,sql server的唯一索引的字段只能允许存在一个null值,而mysql,一直oracle中唯一索引对应的字段都允许存在多个null值。 2、存储过程的语法存在很大的不同,存储过程的迁移是最麻烦的,需要仔细...

    B站 MySQL学习随手记 全是满满的干货!

    MySQL,Oracle,SQL Server,DB2,SQLlite 通过表和表之间的,行与列之间的关系进行数据的存储。(例如:学生信息表) 2. 非关系型数据库(NoSQL)Not Only SQL Redis,MongDB 对象存储,通过对象的自身的属性来决定...

    高中信息技术-浙教版选修四数据库与数据库管理系统.pptx

    目前,常用的关系型数据库管理系统有很多,例如各种版本的FoxPro、Access、Oracle等。本单元以Microsoft Visual Foxpro 6.0为例,学习如何利用数据库管理数据。 高中信息技术-浙教版选修四数据库与数据库管理系统...

    超详细MySQL使用规范分享

    最近涉及数据库相关操作较多,公司现有规范也不是太全面,就根据网上各路大神的相关规范,整理了一些自用的规范用法,万望指正。 数据库环境 dev: 开发环境 开发可读写,可修改表结构。开发人员可以修改表结构,可以...

    MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)

    这里我整理了一些比较常见的数据库表结构设计方面的优化技巧,希望对大家有用。  由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的...

    asp.net知识库

    0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 其它 在.NET访问MySql数据库时的几点经验! 自动代码生成器 关于能自定义格式的、支持多...

    SqlToolBox 1.8.2

    能连接到MySql,Oracle和Ms Sql Server三种数据库。 2. 连接到数据库后,会提供数据库Schema和表的树视图以便用户进行浏览和查找,另外还提供了一个过滤器帮助用户缩小查找范围。 3. 用户能自动快速获取单表的创建...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。...

    自由宿主Asp.net网站通用后台管理系统 v3.1

    2. 编辑页面日期、编辑器和验证脚本整理,调整到脚本文件edit.js中,如果有其他需求,可以修改该脚本文件; 3. 增加oracle和mysql数据库支持,支持,系统可以支持ms sql、access、oracle和mysql等主流数据库; 4. ...

Global site tag (gtag.js) - Google Analytics