以下的文章首要描述的是Oracle改削字段类型现实操作方案,我们巨匠都知道Oracle改削字段类型的现实应用中是较为常见的,体味其现实的操作轨范仍是有必然益处的,下面就是文章的具体内容的介绍。 因为营业需要,修要改削某个字段数据类型有number(5),变为number(5,2)型0 C. o! v J/ c \* c3 h4 ]
c若是没稀有据的话直接用以下语句即可* D" ~4 u6 B+ b. D3 M
1.alter table tb_test modify permile number(5,2);
1 r2 l2 d8 [3 \& D 可是稀有据的话 就不能用膳缦沔体例了,- W8 ~$ b# U7 ]4 z
1.alter table tb_test add permile_temp number(5,2)
' J% j# c% D( L! `- G6 A 2.update tb_test set permilepermile_temp=permile;
* ^* r2 F( r8 F1 w0 a" ]3 r w- N3 F 3.alter table drop column permile;4 D7 u8 x7 H0 \" B3 o& ~
4.alter table test rename column permile_temp to permile;# R1 D" G$ I! F u: o
Oracle改削字段类型这种体例会使列名发生转变,而且字段挨次增添 有可能发生行迁移,对应用轨范会发生影响
9 X' v5 J! l" p 以下体例是斗劲好的体例: a" G0 }) e) @1 W& H& I
不用使列名发生转变 也不会发生表迁移,但这个有个错误谬误是表要更新两次3 q" G7 u5 e% r2 o7 f4 L1 h9 [
如不美观数据量较大的话 发生的undo和redo更多 ,前提也是要停机做% v$ p6 ^' ]8 o
若是不竭机的话 ,也可以采用在线重界说体例来做
E- p) I1 q G* ?1 O 以下是剧本:/ C+ |4 F# C8 E% r+ W9 ?+ T
1.alter table tb_test add permile_temp number;
9 }0 w, ^7 N3 }5 F8 h 2.Add/modify columns
' i3 q' F& d7 z5 R2 M 3.alter table tb_test modify PERMILE null;
" O- y/ r+ V9 y1 Q: g 4.update tb_test set permilepermile_temp=permile,permile=null;
8 F5 b* z" |, f( z/ v+ R 5.commit;
1 b- w0 W, H7 ]7 J# W8 p' H 6.alter table tb_test modify permile number(5,2);+ ~, c1 ]# w% T# n& O- F
7.update tb_test set permile=permile_temp,permile_temp=null;
9 T: w1 {" z: b6 y1 R 8.commit;
; x# l l4 x) T 9.alter table tb_test drop column permile_temp;
* r2 P1 h" e( @$ l& i 10.alter table tb_test modify PERMILE not null;
* R' X* J3 v. @ 11.select * from tb_test ;% s l6 O0 j# Y' _% q
以上的相关内容就是对Oracle改削字段类型的体例的介绍,望你能有所收成。 |