易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle 修改字段类型的方法(转)

因为业务需要,修要修改某个字段数据类型有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中自增字段的创建

步骤:
1.首先,你要有一张表!
       CREATE TABLE example(
             ID Number(4) NOT NULL PRIMARY KEY,
             NAME VARCHA ......

oracle 数据类型


当你在数据库中创建数据表的时候,你需要定义表中所有字段的类型。ORACLE有许多种数据类型以满足你的需要。数据类型大约分为:character, number, date, LOB, 和RAW等类型。虽然ORACLE8i也允许你自定义数据类型,但是它们是最基本的数据类型。
在下面的文章中你将了解到他们在oracle 中的用法、限制以及允许值。
  
......

ORACLE如何根据ITL找到前镜像的

SQL> select * from emp where sal=800;
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- ----- ......

oracle的TX lock信息在哪里?

我们都知道ORACLE不会发生锁升级,锁对于ORACLE来说并不是稀缺资源,为什么DML lock对于ORACLE来说不是稀缺资源,下面来寻找答案。
SQL> select * from emp where sal>2999;
EMPNO ENAME      JOB         MGR HIREDATE     ......

oracle 创建分区表,增(追)加分区

CREATE TABLE T_BI_CurrentAccountDetailed
(
        OrderDate DATE,
        BranchFlag varchar2(3),
        SortId varchar2(11),
        OrderNo&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号