Oracle修改表字段類型(number-->varchar2(len)),親測可用


思路:

--新建臨時表以存儲正確的順序
create table A_2 as select (column1,colum2,……A表中的順序) from A_1 ;

--刪除表A_1
drop table A_1;

--新建A_1並從A_2表中賦予其正確的順序和值
create table A_1 as select * from A_2;

--刪除臨時表A_2
drop table A_2;

 

以下為親測實例--
--step1:
create table M_YS_YSDFZTB_6101_2017_tmp
as select YSBH, DFFXDH,TO_CHAR(YSZZDH) AS YSZZDH,TO_CHAR(YSJZDH) AS YSJZDH,ZT,ZWYF, ZWRQ, YWRQ, YWLSH
from M_YS_YSDFZTB_6101_2017 ;

--step2:
drop table M_YS_YSDFZTB_6101_2017;

--step3:
create table M_YS_YSDFZTB_6101_2017 as select * from M_YS_YSDFZTB_6101_2017_tmp ;
--修改字段長度並置為不為空
alter table M_YS_YSDFZTB_6101_2017 modify (YSZZDH VARCHAR2(16) not null,YSJZDH VARCHAR2(16) not null);
--添加字段備注說明
-- Add comments to the columns
comment on column M_YS_YSDFZTB_6101_2017.YSBH
is '應收編號';
comment on column M_YS_YSDFZTB_6101_2017.DFFXDH
is '電費發行單號';
comment on column M_YS_YSDFZTB_6101_2017.YSZZDH
is '應收軋賬單號';
comment on column M_YS_YSDFZTB_6101_2017.YSJZDH
is '應收結賬單號';
comment on column M_YS_YSDFZTB_6101_2017.ZT
is '狀態(-1 已發行未軋賬0已生成軋賬待核對1已核對待發起結賬2已發起待提交 3已提交待審核 4已審核待推送 5已推送未結 6已結)';
comment on column M_YS_YSDFZTB_6101_2017.ZWYF
is '賬務月份';
comment on column M_YS_YSDFZTB_6101_2017.ZWRQ
is '賬務日期';
comment on column M_YS_YSDFZTB_6101_2017.YWRQ
is '業務日期';
comment on column M_YS_YSDFZTB_6101_2017.YWLSH
is '業務流水號';


--添加/修改主鍵機表空間
alter table M_YS_YSDFZTB_6101_2017
add primary key (YSBH)
using index
--tablespace USERS 148 表空間
--tablespace IDX_HIS 134 表空間
tablespace IDX_HIS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
--step4:
drop table M_YS_YSDFZTB_6101_2017_tmp;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM