oracle 数据库修改数据类型,保留原来数据
2015-03-26 14:12
218 查看
遇到项目,原来是数据类型不能满足当前需求,要保留旧数据的前提下修改(或扩大)某一列的数据类型
在oracle数据库中,有数据的列是不能被修改的,思路是这样的
(1)在原数据表中增加新列,新列的列名只要不同的行,这个新列的数据类型就是目标数据类型
(2)转移数据,将旧列的数据保存到新列中
(3)删除旧列
(4)修改新列列名为之前删去的旧列列名。
提交!
来,举个栗子
update tableName tr set newName=(
select t.oldName from tableName t
where t.id=tr.id
);
alter table tableName drop (oldName);
alter table tableName rename column newName to oldName;
当然如果需要修改的列没有数据,那就简单多。
在oracle数据库中,有数据的列是不能被修改的,思路是这样的
(1)在原数据表中增加新列,新列的列名只要不同的行,这个新列的数据类型就是目标数据类型
(2)转移数据,将旧列的数据保存到新列中
(3)删除旧列
(4)修改新列列名为之前删去的旧列列名。
提交!
来,举个栗子
<pre name="code" class="sql">alter table tableName add (newName NUMBER(10,2) );
update tableName tr set newName=(
select t.oldName from tableName t
where t.id=tr.id
);
alter table tableName drop (oldName);
alter table tableName rename column newName to oldName;
当然如果需要修改的列没有数据,那就简单多。
相关文章推荐
- oracle 中 blob类型数据修改(从file保存到数据库,从java.sql.Blob 保存到oracle.sql.BLOB )
- 修改oracle某张表的ID类型varchar2为number,并保留原有数据(因为可能其他表与该表ID关联)
- oracle修改数据库表列的数据类型
- SQL修改指定数据库的表数据类型【如将表中所有varchar类型修改为nvarchar】
- 修改oracle数据带有数据字段的数据字段的类型
- 学习操作oracle.sql.Blob数据类型,向数据库插入Blob数据类型的数据
- Oracle 修改数据库字段的类型的语句
- Oracle 修改带数据的字段类型
- 数据库-Oracle【Oracle 三种集合数据类型的比较 】
- SQL SERVER 2008数据库的表中修改字段的数据类型后,不能保存
- Oracle 修改带数据的字段类型
- Oracle 9i &amp; 10g编程艺术-深入数据库体系结构——第12章:数据类型
- Oracle 修改数据类型clob
- ORACLE热备复制数据库全记录(可以修改数据库名和数据文件路径)
- Oracle查询数据表结构(字段,类型,大小,备注)---数据库设计说明书
- MySql Oracle SqlServer三大数据库的数据类型列表
- ORACLE-在设计数据库时如何选择正确的数据类型
- Oracle 修改带数据的字段类型
- oracle误删除修改想找回原来数据(Oracle 9i闪回查询的新特性)
- [数据库]Oracle中的IEEE754数据类型